1. 程式人生 > >dart之旅(二)- 內建類型

dart之旅(二)- 內建類型

() bool numbers 長度 16進制 exp libraries 全部 dst

像大多數語言一樣,dart也提供了number,string,boolean等類型,包括以下幾種:

  • numbers
  • strings
  • booleans
  • lists (also known as arrays)
  • maps
  • runes (for expressing Unicode characters in a string)
  • symbols
    這幾種內建類型的特點之一是你可以使用字面量來創建一個相應的對象。你也可以使用構造函數來初始化這些對象,除了number和boolean,因為這兩個類型沒有對應的構造函數。

number類型

number類型包含int和float類型,int在dart的VM環境下,取值範圍在-263

到 263-1之間。如果需要轉為js,範圍為js的範圍,-253 到 253-1。代碼示例如下:


import ‘dart:math‘;
main(List<String> args) {

  int a = 2;
  int a1 = 2.0; //報錯
  double b = 2.0;
  double b1 = 2; //dart2.1會自動轉換,之前的版本會報錯
  var c = 0x111; //支持16進制表示
  print(pow(2, 65)); // 打印出0 超出數字範圍
}

將數字轉換為字符串可以使用數字的toString方法,將字符串轉換為數字可以使用字符串的parse方法。這點和js相比,js借助隱式類型轉換可以更靈活的轉換數字和字符串。


// 數字轉字符串

  print(2.toString());
  print(2.5333.toString());
  print(2.5333.toStringAsFixed(2));//2.50 保留幾位小數
  print(2.5333.toStringAsExponential(2));// 科學計數法
  print(2.5333.toStringAsPrecision(8));//2.5333000

// 字符串轉數字

  print(int.parse(‘1‘));
  print(double.parse(‘2‘));

在運算上,數字支持常用的四則運算,此外dart提供了一個math包來支持更復雜的運算。

字符串

在語法上,dart的字符串和python的語法更為接近,如可以使用單引號和雙引號,使用三個雙引號表示多行字符串。以下都是合法的字符串表示形式:

var s1 = ‘hhh‘;
var s2 = "‘11‘";
var s3 = ‘111‘
         "222";
var s4 = """222
       333
       
       2222""";

在字符串的方法上,與js的字符串很類似,甚至部分代碼可以直接拷到js中執行。下面是關於dart字符串方法的一個例子,更詳細的文檔可以看這裏:

//長度
‘1234‘.length; //4

// 取子串
‘1234‘.substring(1,2);

// 取unicode值
print(‘123456‘.codeUnitAt(1)); //js中的charCodeAt()

// 判斷某個字符串是不是以某子串開始或結束
‘123456??‘.startsWith(‘12‘); //js相同
‘123456??‘.endsWith(‘??‘); //js相同

// replace
‘112‘.replaceAll(‘1‘, ‘x‘);// ‘xx2‘ 全部替換
‘112‘.replaceFirst(‘1‘, ‘x‘);// ‘x12‘ 只替換第一個

//split
print(‘1234561‘.split(‘3‘)); // 同js

// trim,trimLeft,trimRight修剪兩邊,左邊,右邊的空格,同js
print(‘ 1234561  ‘.trim());

//contains
print(‘1234561‘.contains(‘8‘)); //false 判斷字符串是否包含某個子串

// indexOf,lastIndexOf,獲取某個字串第一次出現和最後出現的位置。同js,沒有返回-1
print(‘  1234561  ‘.indexOf(‘9‘));// -1

// padLeft,padRight 同js的padStart和padEnd
print(‘1234561‘.padLeft(9, ‘0‘));//001234561
print(‘1234561‘.padEnd(9, ‘0‘));//123456100

// toUpperCase,toLowerCase同js
print(‘x‘.toUpperCase());
print(‘X‘.toLowerCase());

dart之旅(二)- 內建類型