dart系列之:數學什麼的就是小意思,看我dart如何玩轉它

flydean發表於2021-12-09

簡介

dart也可以進行數學運算,dart為數學愛好者專門建立了一個dart:math包來處理數學方面的各種操作。dart:math包提供了正弦,餘弦,最大值,最小值和隨機數等操作。

一起來看看dart:math包都能做什麼吧。

dart:math包的構成

如果你去檢視dart:math的原始碼,你會發現,dart:math包其實很簡單,它裡面只有4個檔案。分別是:

math.dart,random.dart,point.dart和rectangle.dart。

後面兩個檔案,主要跟二維座標有關,這裡不詳細說明。

我們常用到的就是前面兩個檔案,math和random。

math

math中定義了我們在數學運算中常用到的一些常量,如:

const double e = 2.718281828459045;

const double ln10 = 2.302585092994046;

const double ln2 = 0.6931471805599453;

const double log2e = 1.4426950408889634;

const double log10e = 0.4342944819032518;

const double pi = 3.1415926535897932;

const double sqrt1_2 = 0.7071067811865476;

const double sqrt2 = 1.4142135623730951;

計算最大值和最小值:

assert(max(18, 20) == 20);
assert(min(18, 20) == 18);

使用三角函式:

assert(cos(pi) == -1.0);

var degrees = 30;
var radians = degrees * (pi / 180);

var sinOf30degrees = sin(radians);

assert((sinOf30degrees - 0.5).abs() < 0.01);

Random

dart中的random包提供了一些比較有用的生成隨機數的方法,先看下Random類的定義:

abstract class Random {
 
  external factory Random([int? seed]);

  external factory Random.secure();

  int nextInt(int max);

  double nextDouble();

  bool nextBool();
}

我們可以使用Random中提供的nextInt,nextDouble和nextBool來生成對應的隨機數:

var random = Random();
random.nextDouble(); 
random.nextInt(10); 
random.nextBool(); 

預設情況下,Random生成的是偽隨機數,要想生成更加安全的隨機數,比如密碼學意義上的隨機數,Random還有一個更加安全的實現Random.secure()。

總結

以上就是dart中math庫的介紹。

本文已收錄於 http://www.flydean.com/18-dart-math/

最通俗的解讀,最深刻的乾貨,最簡潔的教程,眾多你不知道的小技巧等你來發現!

歡迎關注我的公眾號:「程式那些事」,懂技術,更懂你!

相關文章