初探 Dart 语法 01

2024-08-27 14:32
文章标签 语法 01 初探 dart

本文主要是介绍初探 Dart 语法 01,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

欢迎来到 Dart 编程的世界,最开始将通过初探 Dart 的基本语法;让你对 Dart 整个语法体系轮廓、Dart 的编程有个大概了解,然后再深入到具体每个语法点细节和使用场景。由于文章篇幅的问题,初探 Dart 语法主要分为上下两篇来介绍。

1. Hello Dart

这是第一个 Hello Dart 程序,很多程序入口都是从 main 函数开始,所以 Dart 也不例外,一起来看下百变的 main 函数。

//main 标准写法
void main() {print('Hello World!');//注意:Dart 和 Java 一样表达式以分号结尾,写习惯 Kotlin 的小伙伴需要注意了,这可能是你从 Kotlin 转 Dart 最大不适之一。
}//Dart 中所有函数的类型都是可以省略的,省略的时候返回值类型为 dynamic
main() {print('Hello World!');  
}//如果函数内部只有一个表达式,可以省略大括号,使用"=>"箭头函数;
//而对于 Kotlin 则是如果只有一个表达式,可以省略大括号,使用"="连接,类似 fun main(args: Array<String>) = println('Hello World!')
void main() => print('Hello World!');//最简写形式
main() => print('Hello World!');

2. 数据类型

在 Dart 中的一切皆是对象,包括数字、布尔值、函数等,它们和 Java 一样都继承于 Object,所以它们的默认值也就是 null。在 Dart 主要有:布尔类型 bool、数字类型 num(数字类型又分为 int、double,并且两者父类都是 num)、字符串类型 String、集合类型(List、Set、Map)、Runes 类和 Symbols 类型(后两个用的并不太多)。

2.1 布尔类型(bool)

在 Dart 中和 C 语言一样,都是使用 bool 来声明一个布尔类型变量或常量,而在 Kotlin 则是使用 Boolean 来声明,但是一致的是,它对应的值只有两个 true 和 false。

main() {bool isClosed = true;//注意,Dart 还是和 Java 类似的 [类型][变量名]方式声明,这个和 Kotlin 的 [变量名]:[类型]不一样.bool isOpened = false;
}
2.2 数字类型(num、int、double)

在 Dart 中 num、int、double 都是类,然后 int、double 都继承 num 抽象类,这点和 Kotlin 很类似,在 Kotlin 中 Number、Int、Double 都是类,然后 Int、Double 都继承于 Number。注意,但是在 Dart 中没有 float、short、long 类型

main() {double pi = 3.141592653;int width = 200;int height = 300;print(width / height);//注意:这里和 Kotlin、Java 都不一样,两个 int 类型相除是 double 类型小数,而不是整除后的整数。print(width ~/ height);//注意:这才是 Dart 整除正确姿势
}

此外和 Java、Kotlin 一样,Dart 也拥有一些数字常用的函数:

main() {print(3.141592653.toStringAsFixed(3)); //3.142 保留有效数字print(6.6.floor());//6 向下取整print((-6.6).ceil()); //-6 向上取整print(9.9.ceil()); //10 向上取整print(666.6.round()); //667 四舍五入print((-666.6).abs()); // 666.6 取绝对值print(666.6.toInt()); //666 转化成 int,这中 toInt、toDouble 和 Kotlin 类似print(999.isEven); //false 是否是偶数print(999.isOdd); //true 是否是奇数print(666.6.toString()); //666.6 转化成字符串
}
2.3 字符串类型(String)

在 Dart 中支持单引号、双引号、三引号以及 $ 字符串模板用法和 Kotlin 是一模一样的。

main() {String name = 'Hello Dart!';//单引号String title = "'Hello Dart!'";//双引号String description = """Hello Dart! Hello Dart!Hello Dart!Hello Dart! Hello Dart!""";//三引号num value = 2;String result = "The result is $value";//单值引用num width = 200;num height = 300;String square = "The square is ${width * height}";//表达式的值引用
}

和 Kotlin 一样,Dart 中也有很多字符串操作的方法,比如字符串拆分、子串等。

main() {String url = "https://mrale.ph/dartvm/";print(url.split("://")[0]); //字符串分割 split 方法,类似 Java 和 Kotlinprint(url.substring(3, 9)); //字符串截取 substring 方法,类似 Java 和 Kotlinprint(url.codeUnitAt(0)); //取当前索引位置字符的 UTF-16 码print(url.startsWith("https")); //当前字符串是否以指定字符开头,类似 Java 和 Kotlinprint(url.endsWith("/")); //当前字符串是否以指定字符结尾,类似 Java 和 Kotlinprint(url.toUpperCase()); //大写,类似 Java 和 Kotlinprint(url.toLowerCase()); //小写,类似 Java 和 Kotlinprint(url.indexOf("ph")); //获取指定字符的索引位置,类似 Java 和 Kotlinprint(url.contains("http")); //字符串是否包含指定字符,类似 Java 和 Kotlinprint(url.trim()); //去除字符串的首尾空格,类似 Java 和 Kotlinprint(url.length); //获取字符串长度print(url.replaceFirst("t", "A")); //替换第一次出现 t 字符位置的字符print(url.replaceAll("m", "M")); //全部替换,类似 Java 和 Kotlin
}
2.4 类型检查(is 和 is!)和强制类型转换(as)

和 Kotlin 一样,Dart 也是通过 is 关键字来对类型进行检查以及使用 as 关键字对类型进行强制转换,如果判断不是某个类型 Dart 中使用 is!,而在 Kotlin 中正好相反则用 !is 表示。

main() {int number = 100;double distance = 200.5;num age = 18;print(number is num);//trueprint(distance is! int);//trueprint(age as int);//18
}
2.5 Runes 和 Symbols 类型

在 Dart 中的 Runes 和 Symbols 类型使用并不多,这里做个简单的介绍。

Runes 类型是 UTF-32 字节单元定义的 Unicode 字符串,Unicode 可以使用数字表示字母、数字和符号,然而在 Dart 中,String 是一系列的 UTF-16 的字节单元,所以想要表示 32 位的 Unicode 的值,就需要用到 Runes 类型。我们一般使用 \uxxxx 这种形式来表示一个 Unicode 码,xxxx 表示 4 个十六进制值。当十六进制数据多余或者少于 4 位时,将十六进制数放入到花括号中,例如,微笑表情(

这篇关于初探 Dart 语法 01的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!


原文地址:
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.chinasem.cn/article/1111938

相关文章

mysql递归查询语法WITH RECURSIVE的使用

《mysql递归查询语法WITHRECURSIVE的使用》本文主要介绍了mysql递归查询语法WITHRECURSIVE的使用,WITHRECURSIVE用于执行递归查询,特别适合处理层级结构或递归... 目录基本语法结构:关键部分解析:递归查询的工作流程:示例:员工与经理的层级关系解释:示例:树形结构的数

Java使用Stream流的Lambda语法进行List转Map的操作方式

《Java使用Stream流的Lambda语法进行List转Map的操作方式》:本文主要介绍Java使用Stream流的Lambda语法进行List转Map的操作方式,具有很好的参考价值,希望对大... 目录背景Stream流的Lambda语法应用实例1、定义要操作的UserDto2、ListChina编程转成M

Python正则表达式语法及re模块中的常用函数详解

《Python正则表达式语法及re模块中的常用函数详解》这篇文章主要给大家介绍了关于Python正则表达式语法及re模块中常用函数的相关资料,正则表达式是一种强大的字符串处理工具,可以用于匹配、切分、... 目录概念、作用和步骤语法re模块中的常用函数总结 概念、作用和步骤概念: 本身也是一个字符串,其中

Mysql用户授权(GRANT)语法及示例解读

《Mysql用户授权(GRANT)语法及示例解读》:本文主要介绍Mysql用户授权(GRANT)语法及示例,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录mysql用户授权(GRANT)语法授予用户权限语法GRANT语句中的<权限类型>的使用WITH GRANT

HTML5表格语法格式详解

《HTML5表格语法格式详解》在HTML语法中,表格主要通过table、tr和td3个标签构成,本文通过实例代码讲解HTML5表格语法格式,感兴趣的朋友一起看看吧... 目录一、表格1.表格语法格式2.表格属性 3.例子二、不规则表格1.跨行2.跨列3.例子一、表格在html语法中,表格主要通过< tab

Java使用ANTLR4对Lua脚本语法校验详解

《Java使用ANTLR4对Lua脚本语法校验详解》ANTLR是一个强大的解析器生成器,用于读取、处理、执行或翻译结构化文本或二进制文件,下面就跟随小编一起看看Java如何使用ANTLR4对Lua脚本... 目录什么是ANTLR?第一个例子ANTLR4 的工作流程Lua脚本语法校验准备一个Lua Gramm

Java字符串操作技巧之语法、示例与应用场景分析

《Java字符串操作技巧之语法、示例与应用场景分析》在Java算法题和日常开发中,字符串处理是必备的核心技能,本文全面梳理Java中字符串的常用操作语法,结合代码示例、应用场景和避坑指南,可快速掌握字... 目录引言1. 基础操作1.1 创建字符串1.2 获取长度1.3 访问字符2. 字符串处理2.1 子字

Python基础语法中defaultdict的使用小结

《Python基础语法中defaultdict的使用小结》Python的defaultdict是collections模块中提供的一种特殊的字典类型,它与普通的字典(dict)有着相似的功能,本文主要... 目录示例1示例2python的defaultdict是collections模块中提供的一种特殊的字

C++ 中的 if-constexpr语法和作用

《C++中的if-constexpr语法和作用》if-constexpr语法是C++17引入的新语法特性,也被称为常量if表达式或静态if(staticif),:本文主要介绍C++中的if-c... 目录1 if-constexpr 语法1.1 基本语法1.2 扩展说明1.2.1 条件表达式1.2.2 fa

hdu 2602 and poj 3624(01背包)

01背包的模板题。 hdu2602代码: #include<stdio.h>#include<string.h>const int MaxN = 1001;int max(int a, int b){return a > b ? a : b;}int w[MaxN];int v[MaxN];int dp[MaxN];int main(){int T;int N, V;s