类型声明(类型声明在前和 java 风格一样,代码整体倾向于 Java 和 JavaScript)
1、声明变量
int a = 0;
var a = 0; 或 dynamic a = 18;
2、变量名大小写敏感
var age;
var Age;
是两个变量
3、变量默认值 null
var a;//a 的默认值就是null
4、不具备隐式转换
通过方法显示转化到想要的类型
5、常量 final 不可变和 const 常量
const 声明编译时常量
final 声明运行时的常量
例子:
var c = 20;
//延迟初始化, lazy initral
late String desc = getDesc();
String getDesc() {
print("getDesc");
return "desc";
}
void main(List<String> args) {
//字符串字面量
print("object");
print('object');
var a = 42;
//参数
printInteger(a);
//空类型安全 可空
String? b = "hello";
print("b = $b");
b = null;
print("b = $b");
print("c = $c");
//默认值 null
int? d;
print("d = $d");
//late lazy 加载
print("desc = $desc");
//不可变的变量,声明运行时使用, 初始化时候
final x = 1;
//编译时常量
const y = 3;
// y = 2;
final p = Person( "bb",18);
// p.age = 20;
// p.name = "bob";
print(p.name);
//字符和数字之间的转换方式
var f = int.parse('1');
print(f);
//十六进制转换
var g = int.parse('f', radix: 16);
print("g=$g");
//类型
//Numbers(int,double)
//Strings(String)
//Booleans(bool)
//多行字符串
var s1 = """
abcd
""";
}
class Person {
//必须需要初始化值
int age;
String name;
//不初始化,可以通过构造器来处理
Person(this.name,this.age);
// Person(int i, String s) {
// this.age = i;
// this.name = s;
// }
}
void printInteger(int a) {
//字符串插值
print("a = $a");
}
数据类型
1、Number
int 表示整数
double 表示浮点类型,
2、String
声明单引号、 双引号 、多行字符串
字符串插值 = kotlin 字符串模板
3、Boolean
4、List
- 字面量方式
List List= [];
List List= <int>[];
- 构造方式
List List= List.empty(growable:true);
- 扩展操作符
var List= [1,2,3];
var List2= [0,...list];
例子:
var list = [1, 2, 3, null];
void main(List<String> args) {
//1、List
print(list[0]);
print(list.first);
print(list.last);
print(list.length);
print(list.isEmpty);
//扩展操作(...)
var list1 = [...list];
print(list1.length);
//空感知扩展操作符 (...?) 不加?报错
var list2;
var list3 = [...?list2];
print(list3);
//数组中加入表达式
var list4 = [1, 2, 3, 4, if (list2 == null) 4 else 5];
print(list4);
//2、 Set、Map
var set = {2, 3, 4};
var map = {'a': 1, 'b': 2};
var empty = {};
//编译器常量
final constSet = const {"box", "row", "column"};
var gifts = Map<String, String>();
gifts['first'] = "partridge";
gifts['second'] = "turtledoves";
gifts['fifith'] = "golden rings";
var gases = Map<int, String>();
gases[1] = 'first';
gases[2] = 'neo';
gases[3] = 'argon';
// e 表示元素
constSet.map((e) => print("key $e"));
// map
gases.forEach((key, value) {
print("key $key , value =$value");
});
}