总结
首先是感觉自己的基础还是不够吧,大厂好像都喜欢问这些底层原理。
另外一部分原因在于资料也还没有看完,一面时凭借那份资料考前突击恶补个几天居然也能轻松应对(在这里还是要感谢那份资料,真的牛),于是自我感觉良好,资料就没有怎么深究下去了。
之前的准备只涉及了Java、Android、计网、数据结构与算法这些方面,面对面试官对其他基础课程的考察显得捉襟见肘。
下一步还是要查漏补缺,进行针对性复习。
最后的最后,那套资料这次一定要全部看完,是真的太全面了,各个知识点都涵盖了,几乎我面试遇到的所有问题的知识点这里面都有!希望大家不要犯和我一样的错误呀!!!一定要看完!
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
}`
**常量**
在 dart 中使用 const 声明常量;使用 const 声明的必须是编译期常量。
void main(){ const a = 10; a = 20; // 这里也会报错:[dart] Constant variables can't be assigned a value. }
在上面我们可以看到 dart 的一些简单的语法。其实和 js 蛮像,声明的变量的数据类型是随便去改变的,没有一个固定的数据类型(例如:java 这种语言)。其次就是 final 和 const 都可以声明变量,并且声明了变量之后都不能修改。
这里简单的说下 final 与 const 的区别:
**final 要求变量只能初始化一次,并不要求赋的值一定是编译时常量,可以是常量也可以不是。而 const 要求在声明时初始化,并且赋值必需为编译时常量。**
### Dart中的内置类型
在Dart 有几种内置的数据类型:数值型-Number、布尔型-boolean、键值对-Map、字符串-String、列表-List、其他类型-Runes、Symbols
#### 数值型
Dart 中只提供了两种类型:
num
整形int
浮点型double
`void main(){
num a = 10; // 整形
a = 20.1; // 浮点型
int i = 10;
i = 10.1; // 这个地方会报错,因为将 int 型的数据改为 double 型
double d = 20.1;
d = 20; // 这个地方会报错,因为将 double 型的数据改为 int 型
}`
从上面可以看到如果是使用 num 声明的变量,可以随意的转换类型,但是如果是使用了int 或者 double 明确的声明,那么就不能转换了
##### 数值型的操作
数值型的操作
**运算符**: +、 - 、\* 、/ 、 ~/ 、 %
**常用属性**: isNaN、isEven、isOdd
**常用方法**:abs()、round()、floorl()、ceil()、toInt()、toDouble()
`// 由于常用的方法在其他语言中都有,就不过去的赘述,下面列出一些特殊的
void main(){
int i = 10;
double d = 20.1;
print(i/d); // 0.49751243781094523
print(i~/d); // 0 这个操作是取整
print( i.isOdd ); // 判断是奇数
print( i.isEven ); // 判断是偶数
}`
**一些常见的转换**
`// String -> int
var one = int.parse(‘1’);
assert(one == 1);
// String -> double
var onePointOne = double.parse(‘1.1’);
assert(onePointOne == 1.1);
// int -> String
String oneAsString = 1.toString();
assert(oneAsString == ‘1’);
// double -> String
String piAsString = 3.14159.toStringAsFixed(2);
assert(piAsString == ‘3.14’);`
#### 字符串
**在 dart 中居然可以使用 单引号 和 双引号声明字符串。这两种方式都可以。**
void main(){ String string = '单引号声明字符串'; String string1 = "双引号声明字符串"; }
**在 String 中单、双引号互相嵌套的情况**
`void main(){
String str = ‘单引号中的"双引号"’;
String str1 = “双引号中的’单引号’”;
print(str);
print(str1);
String str2 = '单引号中的 ‘单引号’ ';
String str3 = "双引号中的 “双引号” ";
print(str2);
print(str3);
}`
**字符串拼接的方式**
**下面列出 dart 中拼接字符串的各种~~骚操作~~(黑魔法)**。
`void main(){
// 使用的是空格拼接,多个空格也可以
String str1 = ‘单引号空格字符串’ ‘拼接’ ‘~’; // 单引号字符串空格拼接~
// 使用换行符以及空格
String str2 = ‘单引号符串’
‘换行了’ ‘再加空格’ ‘拼接’; // 单引号符串换行了再加空格拼接
// 单双引号 空格拼接
String str3 = “单双引号空格字符串” ‘拼接’ “~”; // 单双引号字符串空格拼接~
// 单双引号 换行符以及空格
String str4 = “单双引号符串”
‘换行了’ ‘再加空格’ ‘拼接’; // 单双引号符串换行了再加空格拼接
String str5 = ‘’’
使用3个单引号、
看到我使用了么
‘’';
String str6 = “”"
使用3个双引号、
看到我使用了么
“”";
String str7 = “算了,还是正常一点” + “,使用 + 来拼接”;
}`
**从上面可以看到 dart 中可以使用`空格`来做为拼接。所以我们继续研究下。**
`void main(){
// 拼接字符串, 输出:单引号空格 或者 双引号空格
String blockStr = ‘单引号’‘空格’;
String blockStr1 = ‘单引号’ ‘空格’;
String blockStr2 = “双引号”“空格”;
String blockStr3 = “双引号” “空格”;
// 下面这两种情况会报错
// String blockStr4 = ‘单引号’‘’‘空格’;
// String blockStr5 = “双引号”“”“空格”;
// 测试中间添加字符
String blockStr6 = ‘单引号’‘_’‘空格’; // 输出:单引号_空格
String blockStr7 = “双引号”“#”“空格”; // 注意不能使用
,
,
,会报错, 输出:单引号#空格
// 单双引号混合使用
String blockStr8 = ‘单"“”"引号’; // 输出:单"“”“引号
String blockStr9 = '单”“_”“引号’; // 输出:单”“_”"引号
// 单双引号混合使用
String blockStr10 = “双’‘’'引号”; // 输出:双’‘’‘引号
String blockStr11 = "双’‘_’‘引号"; // 输出:双’‘_’'引号
}`
**${表达式}的使用**
类似于JS中 ES6 上面的表达式的使用,感觉是相通的。
`void main(){
var flag = false;
var str = “测试字符串”;
print(“我们来验证字符串:
s
t
r
"
"
然后看看我们的
f
l
a
g
:
{str}" "然后看看我们的 flag:
str""然后看看我们的flag:{flag}”);
// 最后输出的结果为:我们来验证字符串:测试字符串然后看看我们的 flag:false
}`
#### 布尔值
assert 是语言内置的断言函数,仅在检查模式下有效
在开发过程中, 除非条件为真,否则会引发异常。(断言失败则程序立刻终止)。
`// 检查是否为空
var fullName = ‘’;
assert(fullName.isEmpty);
总结
写到这里也结束了,在文章最后放上一个小小的福利,以下为小编自己在学习过程中整理出的一个关于Flutter的学习思路及方向,从事互联网开发,最主要的是要学好技术,而学习技术是一条慢长而艰苦的道路,不能靠一时激情,也不是熬几天几夜就能学好的,必须养成平时努力学习的习惯,更加需要准确的学习方向达到有效的学习效果。
由于内容较多就只放上一个大概的大纲,需要更及详细的学习思维导图的
还有高级UI、性能优化、架构师课程、NDK、混合式开发(ReactNative+Weex)微信小程序、Flutter全方面的Android进阶实践技术资料,并且还有技术大牛一起讨论交流解决问题。
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
、NDK、混合式开发(ReactNative+Weex)微信小程序、Flutter全方面的Android进阶实践技术资料,并且还有技术大牛一起讨论交流解决问题。**
[外链图片转存中…(img-W0w9DLHE-1715746977002)]
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!