Kotlin Dart速来系列1,基础:变量、常量、数值、布尔、字符串、日期时间

1. 变量

1.1 是什么?

变量是用来存储数据的容器。在Dart中,你可以声明不同类型的变量,包括数字、字符串、布尔值等。

1.2 怎么用?

在Dart中,可以使用关键字varfinaldynamic来声明变量。下面是一些示例:

var name = 'John'; // 使用var声明一个字符串类型的变量name
final age = 30; // 使用final声明一个常量age,其值在声明后不能修改
dynamic height = 1.75; // 使用dynamic声明一个动态类型的变量height

1.3 使用时需要注意什么?

  • 使用var声明的变量会根据初始值自动推断类型,但一旦确定类型后,就不能再更改它的类型。
  • final声明的变量只能赋值一次,一旦赋值后就不能再修改其值。
  • dynamic声明的变量可以在运行时改变其类型,但会导致一些性能损失。

与Java和Kotlin相比:

  • 在Java和Kotlin中,变量的声明需要显式地指定类型,例如String name = "John";

  • Kotlin中使用val关键字来声明不可变变量(类似于final),例如val age: Int = 30

2. 常量

2.1 是什么?

常量是在程序执行期间值不会发生改变的变量。在Dart中,可以使用finalconst关键字声明常量。

2.2 怎么用?

final int x = 5; // 使用final声明一个整数类型的常量x
const double PI = 3.14; // 使用const声明一个浮点数类型的常量PI

2.3 使用时需要注意什么?

  • finalconst都可以用来声明常量,但在使用场景上有所不同。final常量的值可以在运行时计算,而const常量的值必须在编译时就确定下来。
  • finalconst关键字可以用于声明基本数据类型、字符串以及自定义类型的常量。

与Java和Kotlin相比:

  • 在Java中,可以使用final关键字来声明常量,例如final int x = 5;
  • Kotlin中使用val关键字来声明不可变变量,例如val x: Int = 5,但没有专门用于声明常量的关键字。

3. 数值

3.1 是什么?

数值是用来表示数字的数据类型。在Dart中,有整数类型和浮点数类型。

3.2 怎么用?

int age = 30; // 声明一个整数类型的变量age
double height = 1.75; // 声明一个浮点数类型的变量height

3.3 使用时需要注意什么?

  • Dart中的整数类型为int,浮点数类型为double
  • 数值类型支持基本的算术运算,如加法、减法、乘法和除法。

与Java和Kotlin相比:

  • 在Java和Kotlin中,整数类型的声明方式与Dart类似,分别为intInteger(Java)以及Int(Kotlin)。
  • 浮点数类型的声明方式在Java中为double,而在Kotlin中为Double

4. 布尔

4.1 是什么?

布尔类型用于表示真或假的值。在Dart中,布尔类型的关键字为bool,只有两个可能的值:truefalse

4.2 怎么用?

bool isRaining = true; // 声明一个布尔类型的变量isRaining,并赋值为true

4.3 使用时需要注意什么?

  • 布尔类型的变量可以用于控制程序的流程,例如条件判断和循环控制。

与Java和Kotlin相比:

  • 在Java和Kotlin中,布尔类型的关键字分别为boolean(Java)和Boolean(Kotlin)。
  • 布尔类型的用法在Java、Kotlin和Dart中基本相同。

5. 字符串

5.1 是什么?

字符串是一系列字符的集合,用于表示文本数据。在Dart中,字符串是不可变的,意味着一旦创建后,其内容不可修改。

5.2 怎么用?

在Dart中,可以使用单引号或双引号括起来的字符序列来表示字符串。

String message1 = 'Hello'; // 使用单引号声明一个字符串变量message1
String message2 = "World"; // 使用双引号声明一个字符串变量message2

5.3 使用时需要注意什么?

  • 字符串可以包含任何字符,包括字母、数字、特殊字符和空格。
  • 字符串可以通过+运算符进行拼接,将多个字符串连接起来。
  • 可以使用${expression}将表达式的结果嵌入到字符串中。

下面是一些示例代码,展示了字符串的基本用法:


String name = 'John';
int age = 30;
String greeting = 'Hello, my name is $name. I am $age years old.'; // 字符串插值

print(greeting); // 输出:Hello, my name is John. I am 30 years old.

需要注意的是,使用双引号和单引号来定义字符串是等效的,但在字符串内部引用相同类型的引号时,需要进行转义。


String message = 'I'm a string with single quotes.'; // 使用转义符\插入单引号
String quote = "He said, "Hello!""; // 使用转义符\插入双引号

print(message); // 输出:I'm a string with single quotes.
print(quote); // 输出:He said, "Hello!"

与Java和Kotlin相比:

  • 在Java和Kotlin中,字符串的声明方式与Dart类似,可以使用单引号或双引号表示字符串,例如String message = "Hello";
  • 字符串的拼接在Java和Kotlin中也可以使用+运算符,例如String result = "Hello, " + name + "!";
  • Kotlin还提供了字符串模板的功能,可以更方便地嵌入表达式,例如val message = "Hello, $name!";

以上是关于Dart中字符串的基础知识和使用方法。字符串是处理文本数据的重要工具,在实际开发中经常用到。记住字符串是不可变的,因此每次修改字符串都会创建一个新的字符串对象。

6. 日期时间

6.1 是什么?

日期时间用于表示具体的日期和时间。在Dart中,可以使用DateTime类来处理日期时间。

6.2 怎么用?

在Dart中,可以使用DateTime类来表示日期和时间。你可以创建一个DateTime对象来表示特定的日期和时间,也可以获取当前日期时间。


// 创建特定的日期时间
DateTime birthday = DateTime(1990, 5, 20); // 年、月、日
DateTime currentTime = DateTime.now(); // 获取当前日期时间

6.3 使用时需要注意什么?

  • DateTime对象可以访问日期和时间的各个部分,如年、月、日、小时、分钟和秒。
  • DateTime类提供了许多方法来处理日期和时间,例如计算两个日期之间的差异、格式化日期时间等。
  • 可以使用intl包来进行更高级的日期时间处理。

下面是一些示例代码,展示了日期时间的基本用法:


DateTime now = DateTime.now(); // 获取当前日期时间
print(now); // 输出当前日期时间

int year = now.year; // 获取年份
int month = now.month; // 获取月份
int day = now.day; // 获取日期
int hour = now.hour; // 获取小时
int minute = now.minute; // 获取分钟
int second = now.second; // 获取秒钟

print('$year-$month-$day $hour:$minute:$second'); // 输出:2023-7-7 14:30:45

使用intl包可以进行更高级的日期时间处理,如格式化日期时间、本地化等。以下是一个示例:


import 'package:intl/intl.dart';

DateTime now = DateTime.now();
String formattedDate = DateFormat('yyyy-MM-dd').format(now); // 格式化日期

print(formattedDate); // 输出:2023-07-07

与Java和Kotlin相比:

  • 在Java中,可以使用java.util.Datejava.time包中的类来处理日期和时间。
  • Kotlin使用Java的日期时间类,但还提供了许多扩展函数和操作符来简化日期时间的处理。

最后

如果想要成为架构师或想突破20~30K薪资范畴,那就不要局限在编码,业务,要会选型、扩展,提升编程思维。此外,良好的职业规划也很重要,学习的习惯很重要,但是最重要的还是要能持之以恒,任何不能坚持落实的计划都是空谈。

如果你没有方向,这里给大家分享一套由阿里高级架构师编写的《Android八大模块进阶笔记》,帮大家将杂乱、零散、碎片化的知识进行体系化的整理,让大家系统而高效地掌握Android开发的各个知识点。
img
相对于我们平时看的碎片化内容,这份笔记的知识点更系统化,更容易理解和记忆,是严格按照知识体系编排的。

欢迎大家一键三连支持,若需要文中资料,直接扫描文末CSDN官方认证微信卡片免费领取↓↓↓

PS:群里还设有ChatGPT机器人,可以解答大家在工作上或者是技术上的问题

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值