flutter与kotlin的简单对比

本文对比了Dart和Kotlin两种编程语言的关键特性,包括数据类型、对象模型、语法糖、权限修饰符及框架应用。Dart为动态类型语言,一切皆为对象,适用于Flutter框架;Kotlin为静态类型语言,简洁安全,被Google列为Android官方开发语言。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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<String>) {...}

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

### Android Studio 中 Flutter、Java 和 Kotlin 的开发教程配置指南 #### 一、环境搭建 为了在Android Studio中顺利使用Flutter、Java和Kotlin进行开发,首先需要完成一系列的基础设置。 安装并配置好最新版本的Android Studio之后,在插件商店里可以找到支持这三种技术栈所需的工具。对于Flutter的支持,官方提供了专门的插件来简化创建新项目的过程以及管理依赖项的工作流;而针对Java和Kotlin,则默认集成了相应的编译器和支持库[^1]。 #### 二、语言特性对比 - **Java**: 作为最早用于Android应用程序的主要编程语言之一,拥有庞大的社区资源和技术积累。其语法相对严格,适合初学者入门学习。 - **Kotlin**: 被Google指定为优先级更高的官方推荐语言,具有更简洁优雅的语法规则,并且能够无缝兼容现有的Java代码库。它引入了许多现代功能如协程(coroutines),极大提高了异步操作处理效率[^3]。 - **Dart (Flutter)**: Dart是由谷歌设计的一种面向对象的语言,专为高效构建UI界面而生。借助于Hot Reload热更新机制,开发者可以在几乎不中断测试流程的情况下即时查看修改效果,大大加快了迭代速度。 #### 三、集成方式说明 当在同一工程内混用多种语言编写逻辑时,可以通过合理规划包结构来保持清晰度: - 使用`build.gradle`文件定义不同module下的sourceSets路径指向各自的src目录; - 对于共享业务层组件部分可以选择采用接口抽象的方式暴露给其他模块调用; - 利用Gradle强大的多platform build能力轻松切换目标平台(iOS/Android)[^2]。 ```groovy // app/build.gradle 示例 apply plugin: 'com.android.application' apply plugin: 'kotlin-android' dependencies { implementation "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version" } ``` #### 四、实践案例分享 假设要实现一个简单的待办事项列表应用(Todo App): - 前端视图由Flutter负责渲染美观直观的操作面板; - 后台服务端口利用Spring Boot快速搭建RESTful API提供数据交互接口; - 客户端内部存储选用Room数据库替代SQLiteOpenHelper提高性能表现; - 关键算法计算任务交给NDK(C/C++)执行以获得更好的运行效能。 通过这种方式组合起来的应用程序不仅能在视觉体验方面给人留下深刻印象,同时也兼顾到了后台运算层面的需求。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值