最后
给大家分享一份移动架构大纲,包含了移动架构师需要掌握的所有的技术体系,大家可以对比一下自己不足或者欠缺的地方有方向的去学习提升;
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
MainActivity : AppCompatActivity()
表示我们的MainActivity
继承自AppCompatActivity
。
此外,所有的方法都必须有一个关键字fun
,在Kotlin 中,你不能使用@override
注解,如果你要表明方法是复写父类或者接口的方法的话,直接使用override
关键字,注意:它和Java不一样,不是一个注解了。
然后,savedInstanceState: Bundle?
中的?
代表什么呢?它代表了savedInstanceState
这个参数可以是Bundle
或者null。Kotlin是一门null 安全语言,如果你像下面这样写:
var a : String
你将会得到一个编译错误。因为a
变量必须被初始化,并且不能为null,因此你要像这样写:
var a : String = “Init value”
并且,如果你执行以下操作,也会报编译错误:
a = null
要想使a
变量为null ,你必须这样写:
var a : String?
为什么这是Kotlin语言的一个重要功能呢?因为它帮我们避免了NPE,Androd开发者已经对NPE感到厌倦了,甚至是null的发明者-Tony Hoare
先生,也为发明它而道歉。假设我们有一个可以为空的nameTextView
。如果为null,以下代码将会发生NPE:
nameTextView.setEnabled(true)
但实际上,Kotlin做得很好,它甚至不允许我们做这样的事情。它会强制我们使用?
或者!!
操作符。如果我们使用?
操作符:
nameTextView?.setEnabled(true)
仅当nameTextView
不为null时,这行代码才会继续执行。另一种情况下,如果我们使用!!
操作符:
nameTextView!!.setEnabled(true)
如果nameTextView
为null,它将为我们提供NPE。它只适合喜欢冒险的家伙)
这是对Kotlin的一些介绍。我们继续进行,我将停止描述其他Kotlin特定代码。
2、构建变体
通常,在开发中,如果你有两套环境,最常见的是测试环境和生产环境。这些环境在服务器URL
&