Flutter中文网上,关于搭建开发环境的教程已经写得比较详细了

Windows及Linux上配置开发环境跟Mac上类似,都是clone代码,配置环境变量,运行flutter doctor,配置IDE这几步,具体配置过程就不赘述了,大家可以参考Flutter中文网中的教程

Dart编程语言快速入门

Dart是Google推出的一门编程语言,吸收了现代编程语言的高级特性,目前Dart的版本是Dart2,官网是:www.dartlang.org/

Developers at Google and elsewhere use Dart to create high-quality, mission-critical apps for iOS, Android, and the web. With features aimed at client-side development, Dart is a great fit for both mobile and web apps.
Dart致力于客户端开发,非常适合移动和Web应用程序。

Dart语言的特性

  • Productive(生产力高,Dart的语法清晰明了,工具简单但功能强大)
  • Fast(执行速度快,Dart提供提前优化编译,以在移动设备和Web上获得可预测的高性能和快速启动。)
  • Portable(易于移植,Dart可编译成ARM和X86代码,这样Dart移动应用程序可以在iOS、Android和其他地方运行)
  • Approachable(容易上手,充分吸收了高级语言特性,如果你已经知道C++,C语言,或者Java,你可以在短短几天内用Dart来开发)
  • Reactive(响应式编程)

Dart的一些重要概念

  • 在Dart中,一切都是对象,所有的对象都是继承自Object
  • Dart是强类型语言,但可以用var或 dynamic来声明一个变量,Dart会自动推断其数据类型,dynamic类似c#
  • 没有赋初值的变量都会有默认值null
  • Dart支持顶层方法,如main方法,可以在方法内部创建方法
  • Dart支持顶层变量,也支持类变量或对象变量
  • Dart没有public protected private等关键字,如果某个变量以下划线(_)开头,代表这个变量在库中是私有的

Dart一些语法特点

如果熟悉java或者c#,只需要注意下面的一些语法特性即可,其他的都比较类似,不用特意关注。

命名参数

sayHello({String name}) {
print(“hello, my name is $name”);
}

sayHello2({name: String}) {
print(“hello, my name is $name”);
}

main() {
// 打印 hello, my name is zhangsan
sayHello(name: ‘zhangsan’);

// 打印 hello, my name is wangwu
sayHello2(name: ‘wangwu’);
}

####参数默认值

// 位置参数的默认值
int sum(int a, int b, [int c = 3]) {
return a + b + c;
}

####匿名函数

test(Function callback) {
callback(“hello”);
}

main() {
test((param) {
// 打印hello
print(param);
});
}

####is
和c#一样, is运算符用于判断一个变量是不是某个类型的数据

// is!则是判断变量不是某个类型的数据
var s = “hello”;
print(s is String); // true
var num = 6;
print(num is! String); // true

####??= 和 ?.运算符
??=运算符 如果 ??= 运算符前面的变量为null,则赋值,否则不赋值

var param1 = “hello”, param2 = null;
param1 ??= “world”;
param2 ??= “world”;
print(“param1 = $param1”); // param1 = hello
print(“param2 = $param2”); // param2 = world

####?.运算符

var str1 = “hello world”;
var str2 = null;
print(str1?.length); // 11
print(str2?.length); // null
print(str2.length); // 报错

####运算符(级联操作)
使用…调用某个对象的方法(或者成员变量)时,返回值是这个对象本身,这样就能方面实现链式调用:

class Person {
eat() {
print(“I am eating…”);
}

sleep() {
print(“I am sleeping…”);
}

study() {
print(“I am studying…”);
}
}

main() {
// 依次打印
// I am eating…
// I am sleeping…
// I am studying…
new Person()…eat()
…sleep()
…study();
}

####不一样的try/catch

// try catch语句
try {
print(1 ~/ 0);
} catch (e) {
// IntegerDivisionByZeroException
print(e);
}
try {
1 ~/ 0;
} on IntegerDivisionByZeroException { // 捕获指定类型的异常
print(“error”); // 打印出error

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数初中级安卓工程师,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年最新Android移动开发全套学习资料》送给大家,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
img
img
img
img

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频
如果你觉得这些内容对你有帮助,可以添加下面V无偿领取!(备注Android)
img

最后

由于题目很多整理答案的工作量太大,所以仅限于提供知识点,详细的很多问题和参考答案我都整理成了 PDF文件,需要的小伙伴可以私信我【面试】免费领取或者点击GitHub免费获取!

私信我【面试】免费领取或者点击GitHub免费获取!

[外链图片转存中…(img-bunBvksM-1710836292844)]

[外链图片转存中…(img-IDqfna1C-1710836292845)]

Logo

瓜分20万奖金 获得内推名额 丰厚实物奖励 易参与易上手

更多推荐