Dart语言学习(二)

121 阅读2分钟

这是我参与11月更文挑战的第15天,活动详情查看:2021最后一次更文挑战

Set

Set是一个无序的,元素唯一给集合,无法通过下标取值,重复元素会在代码执行的时候去掉 通过字面量和构造函数方式创建

  • var nums = {1,2,3}
  • var f = new Set() 常用API
  • toSet() 注意转换的过程中会将重复元素去掉
  • intersection() 求交集
  • union() 求并集
  • difference() 求差集
  • first 返回第一个元素

Map

Map是一个无序的键值对映射,通常被称为哈希或字典 声明方式:

  • var map = {key1:value1,key2:value2}
  • var map = new Map();
  • map['key'] = value

常用API:

  • containsKey() 某个key是否存在
  • containsValue() 某个value是否存在
  • putIfAbsent() 赋值,如果key不存在才赋值,若key存在则不赋值
  • keys 获取所有key
  • values 获取所有value
  • removeWhere 根据条件进行删除

其他

Runes 符文
  • Runes对象是一个32位字符对象,他可以把文字转换成符号表情或特定的文字
  • copychar.cc/
Symbol
  • 在Dart中符号用#开头来表示的标识符
dynamic
  • 动态数据类型

运算符

  • 地板除(~/):对除法运算结果向下取整
  • 类型判断运算符 (is | is!)
  • 避空运算符(?? | ??=):如果为空才变量赋值,如果不为空,不做操作
  • 条件属性访问(?.) 属性不存在,用这个,不会报错;先判断属性是否存在如果存在才访问
  • 级联运算符(..)
    • myObject.myMethod() //返回myMethod的返回值

    • myObject..myMethod() //返回myObject对象的引用

Dart函数

声明函数

Dart 中声明函数,不需要function关键字 返回值要与函数声明的类型一致

  • 直接声明
int getNum(){
	return 1;
}
  • 箭头函数
    • Dart中箭头函数只是函数的简写形式,没有别的意义
    • Dart中箭头函数,函数体只能写一行且不能带有结束的分号
  • 匿名函数
var myPrint = (value){
	print(value)
};//这里要有分号
  • 立即执行函数
((int n){
	print(n)
})(13);

函数参数

  • 必填参数

    • 参数类型 参数名称
    String user(String name){
    	return 'hello $name'
    }
    
  • 可选参数

    • 放在必填参数后面
    • 通过中括号包裹起来
    • 带默认值的可选参数
    	String user(String name,[int age=0]){
    		return 'hello $name $age'
    	}	
    
  • 命名参数

    • 用大括号包裹起来
    • 调用函数时,命名参数的名称和声明函数中的名称保持一致
    String user(String name,{int age = 0}){
    	return 'hello $name $age'
    }
    user('tom',age:20) //命名参数调用方式
    
  • 函数参数

    • 将函数当作参数传递给另一个函数