flutter与kotlin的简单对比

dart为动态类型语言

dart中的 Var 跟kotlin一样,表示任意数据类型

dart中最高级的类跟Java一样叫做Object,Kotlin叫做Any

dart中一切都是对象,每个对象都是类的实例(包括null),所有类都继承自object,未被初始化的都会被赋值为:null

dart 以“;”结尾,跟Java一样。Kotlin 不需要结尾符

dart关键字有new(dart2可省略),static跟java一样。Kotlin没有new,static关键字,有伴生对象
dart中static只能修饰类的成员(变量与方法)。

dart对象类型判断用 is 跟kotlin一样;Java 用Instanceof

bool isNum = a is num; //dart、flutter
bool isList = list is! List; //dart、flutter

var isStudent3 = student is Student3	//kotlin
var isStudent3 = !(student is Student3) //kotlin

boolean isStudent = student instanceof Student; //Java

dart中assert:断言

assert(text != null);

assert 判断的条件可以是任何可以转化为 boolean 类型的对象,即使是函数也可以(此时判断的是函数返回值)。
如果assert 的判断为true, 则继续执行下面的语句。反之则会丢出一个异 AssertionError 。

kotlin主动抛出异常,throw OutOfMemoryError(“内存溢出了”) 操作跟Java一样

flutter(基于Dart语言的UI框架)

简介:

Flutter是谷歌的移动UI框架,可以快速在iOS和Android上构建高质量的原生用户界面。 Flutter可以与现有的代码一起工作。在全世界,Flutter正在被越来越多的开发者和组织使用,并且Flutter是完全免费、开源的。

Dart语言支持以下类型

数字(int double)
字符串(String):
	Dart字符串是一系列UTF-16代码单元。 Runs 用于表示UTF-32代码单元序列。
	关键字 String 用于表示字符串文字。字符串值嵌入单引号或双引号中。
布尔(bool)
列表(list)
map

dart的一个文件可以main方法与类同级别定义,但只能一个main方法。

dart的main方法:

void main() {...}
//或
main() {...}	//void可省略。

dart语句结束必须带分号

dart2中new关键字已经成为一个可选项,可省略

dart中set、get方法内只有一行语句可简写:

String get get_name => name;

int get get_age => age;

set set_name(String name) => this.name = name;

set set_age(int age) => this.age = age;

dart中没有权限修饰符,使用前缀下划线表示私有,如: _name

dart没有package,只有import

kotlin(语言,简洁/安全)

简介:

Kotlin 是一种在 Java 虚拟机上运行的【静态类型】编程语言,被称之为 Android 世界的Swift,由 JetBrains 设计开发并开源。
Kotlin 可以编译成Java字节码,也可以编译成 JavaScript,方便在没有 JVM 的设备上运行。
在Google I/O 2017中,Google 宣布 Kotlin 成为 Android 官方开发语言。

Kotlin类型包括

Byte、
Short、
Int、
Long、
Float、
Double 
布尔boolean
字符串
	val text = """
	    多行字符串
	    多行字符串
	    """

数组
	//[1,2,3]
	val a = arrayOf(1, 2, 3)
	//[0,2,4]
	val b = Array(3, { i -> (i * 2) })

不同于Java的是,字符不属于数值类型,是一个独立的数据类型。 
和 Java 不一样,Kotlin 中的 Char 不能直接和数字操作,
Char 必需是单引号 ' 包含起来的。比如普通字符 '0','a'。 

kotlin的一个文件可以存在多个类,但一个类中只能一个main方法。

kotlin的main方法:

fun main(args: Array) {...}

kotlin语句结束不带分号

kotlin中没有new关键字

kotlin中set、get方法在变量定义时给出进行限定,也可省略设置默认:

var name: String = ""
	get() = field.toUpperCase()   // 将变量赋值后转换为大写
	set

var age: Int = 0
	get() = field                // 后端变量
	set(value) {
		if (value < 10) {       // 如果传入的值小于 10 返回该值
			field = value
		} else {
			field = -1         // 如果传入的值大于等于 10 返回 -1
		}
	}

kotlin中变量:冒号后为类型,等号后为值

var person: Person = Person()

kotlin中权限修饰符

private    // 仅在同一个文件中可见
protected  // 同一个文件中或子类可见
public     // 所有调用的地方都可见
internal   // 同一个模块中可见

kotlin有package,import

你可能感兴趣的:(flutter,kotlin)