Dart 基础数据类型
如何学习一门新的语言?
建立兴趣
对于学习来说每个人都有自己的方式和方法,每个人的习惯和思维模式都不太一样,但每当碰到这个问题的时候,很多的人都会选择以很难
来逃避,记得之前GitHub上有一则很有趣的事情,NodeJS的发明者,又推出了一个新的框架,本来时间很好的事情,有个哥们就提了一个issuess说求大神别再更新了,学不动了。这个同学这样的想法并非他一个人所面临的,很多人都有这样的想法。但是时代进步的脚步是不会停止的,我们需要面临的新鲜事物会层出不穷,不单单是技术这方面,其他生活方面也是一样。所以我们不能逃避或者退缩,新鲜的事物总有新鲜之处,你若想了解他,就去研究他,自然就会产生兴趣。千万不要为了追赶而去学习,要建立兴趣,一旦兴趣建立了,人也就主动了,思维也会随之变得开阔起来,自然而然学习就不是问题了。
学习新语言
学习一门新的技术语言,即使并不是很难,和我们人学说话是差不多的,从咿呀学语到侃侃而谈。<br />学习程序语言也是这样,最开始模仿到熟练。大致的思路如下
- 简单浏览技术文档
- 从最简单开始,不要眼高手低
- 模仿别人已经写好的代码自己去敲一边,运行结果
- 思考代码的意思,遇到不会的点再仔细去看相关的文档
- 总结学习的知识点
- 研究更深入的问题<br /><br />
简单的来说就是,先学会用,然后熟练会用,最后达到知道会用,前期照猫画虎,后期升华。
Dart语言介绍
直接引用维基百科关于Dart的介绍
类似JavaScript,Dart也是一种面向对象语言,但是它采用基于类编程。它只允许单一继承,语法风格接近C语言。
Dart Hello World
void main() {
print("hello world");
}
Dart语言提供的基础数据类型
numbers
int 整数
在Dart VM上值的范围为-2到2 - 1,编译为Javascript使用的Javascript的num实现兼容,允许值为-2到2 - 1
<a name="double"></a>
double
双精度浮点数
import 'dart:math' as math;
void validationIntAutoConvertToDouble(double first, double second) {
print('a + b = ${first + second}');
}
void main() {
int a = 1;
double b = 1;
print('a + b = ${a + b}');
print('a - b = ${a - b}');
print('a * b = ${a * b}');
print('a / b = ${a / b}');
validationIntAutoConvertToDouble(2, 3);
}
strings
在Dart中字符串可以用单引号也可以使用双引号
//单引号
var str = 'hello';
//双引号
var str2 = "hello world";
//多行文本
var multiLineStr = '''
hello world Dart Language
''';
//字符串拼接1
var str3 ='$str' '$str2';
//字符串拼接2 不推荐
var str4 = str + str2;
//字符串截取
var str5 =multiLineStr.substring(1,2);
//判断字符串是否包含
multiLineStr.contains('2');
//字符串相等
str.compareTo(str2);
//字符串以莫哥字符串结尾
str.endsWith('aaa');
//判断字符串为空或非空
str.isEmpty;
str.isNotEmpty;
//获取字符串的长度
str.length;
//获取莫一个字符所当前字符串的索引
str.indexOf('a');
//替换str中所有的a为b
str.replaceAll('a', 'b');
//以某个特殊字符分割当前字符串 返回一个数组
str.split(',')
string中还有其他的相关API,可以自行查看官方文档
booleans
真或假,true或false
lists
类似与javascript中的数组
//空集合
var list = [];
//list 的长度
list.length;
//添加元素
list.add(1);
//移除元素
list.remove(1);
//在list最后添删除元素
list.removeLast();
//批量添加元素
list.addAll([1,2,3,4]]);
//查找元素1的索引
list.indexOf(1);
//遍历list元素
for (var item in list) {
print(item);
}
//list排序
list.sort((item1,item2)=>{
return item1<item2;
});
//在指定位置为list添加元素
list.insert(1,3);
//将当前list的元素点到 [1,2,3] -> [3,2,1]
list.reversed;
sets
存放不重复元素的集合,类似与不重复的list
maps
存放key,value的集合{"name":"张三"}
var map = {};
//获取map的元素个数
map.length;
//添加元素
map.putIfAbsent('name', ()=>'zhangsan'));
//获取map中的所有key
map.keys;
//获取map中所有的value
map.values;
//判断map中是否包含某一个给定的value值
map.containsValue('123');
//获取map中所有的key,value entity
map.entries;
//判断map为空或非空
map.isEmpty;map.isNotEmpty;
//从map中移除key为name的元素
map.remove('name');
//根据指定的条件删除元素
map.removeWhere((key,value)=>key == 'name' && value == '123');
默认值
Dart语言中对于为初始化的值统一默认为null,不管是字符串还是数值类型。
其他数据类型
Dart中还提供了 runes
symbols
在此后的文章中会