前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Google 如何看待 Kotlin 与 Android

Google 如何看待 Kotlin 与 Android

作者头像
开发者技术前线
发布2020-11-23 16:12:08
5720
发布2020-11-23 16:12:08
举报

你好, 2018!Kotlin 现在已经是Android的官方语言。它富有的表现力,简洁,有力。最重要的是,它能与我们现有的Android主要开发语言Java可以运行时互操作。

现在开始学习? 点我(https://developer.android.com/kotlin/get-started.html)

先进 简洁 安全。

在语法表现上,Kotlin够简洁明了。不防看看:你应该切换到Kotlin开发,它包含了零默认值和不可变性的安全特性,使你的Android应用程序在默认情况下是安全的 并且性能是良好的。

代码更安全

编写更安全的代码,并在应用程序中避免 发生Nullpointerexception。

代码语言:javascript
复制
var output: String
output = null   // Compilation error==================================val name: String? = null    // Nullable type
println(name.length())      // Compilation error          

语法更易读和简洁

Data Classes

更加专注于表达你自己的代码创意设计,无需编写更多的样板代码。

代码语言:javascript
复制
// Create a POJO with getters, setters, equals(), hashCode(), toString(), and copy() with a single line:
data class User(val name: String, val email: String)         
Lambdas语法

使用lambda来简化你的代码。

代码语言:javascript
复制
button.setOnClickListener(new View.OnClickListener(){
   @Override
   public void onClick(View v){
       doSomething();
   }
});          
代码语言:javascript
复制
button.setOnClickListener { doSomething() }          
默认的命名参数

通过使用默认参数减少重载函数的数量。使用命名参数调用函数,使自己的代码更具有可读性。

代码语言:javascript
复制
fun format(str: String,
          normalizeCase: Boolean = true,
          upperCaseFirstLetter: Boolean = true,
          divideByCamelHumps: Boolean = false,
          wordSeparator: Char = ' ') {
       …
   }==================================// Call function with named arguments.
format(str, normalizeCase = true, upperCaseFirstLetter = true)         

和 findViewById 说再见

在你自己的代码中避免findViewById() 调用。专注于写你的逻辑,而不需要那么繁琐。

代码语言:javascript
复制
import kotlinx.android.synthetic.main.content_main.*class MainActivity : AppCompatActivity() {   override fun onCreate(savedInstanceState: Bundle?) {
       super.onCreate(savedInstanceState)
       setContentView(R.layout.activity_main)
       // No need to call findViewById(R.id.textView) as TextView
       textView.text = "Kotlin for Android rocks!"   }
}          

扩展功能, 而不是用继承

扩展函数和属性使你可以轻松地扩展类的功能,而无需继承它们。调用代码是可读和自然的。

代码语言:javascript
复制
// Extend ViewGroup class with inflate function
fun ViewGroup.inflate(layoutRes: Int): View {
   return LayoutInflater.from(context).inflate(layoutRes, this, false)
}==================================// Call inflate directly on the ViewGroup instance
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): ViewHolder {
   val v = parent.inflate(R.layout.view_item)
   return ViewHolder(v)
}

100%的和Java可互操作性

在你非常不是想用Java的情况下,尽量多地使用Kotlin。Kotlin是一种与Java完全可互操作的JVM语言。

代码语言:javascript
复制
// Calling Java code from Kotlin
class KotlinClass {
   fun kotlinDoSomething() {
       val javaClass = JavaClass()
       javaClass.javaDoSomething()
       println(JavaClass().prop)
   }
}==================================// Calling Kotlin code from Java
public class JavaClass {
   public String getProp() { return "Hello"; }
   public void javaDoSomething() {
       new KotlinClass().kotlinDoSomething();
   }
}          

强大的开发工具支持

Android Studio 3.0 提供了不错的工具来帮助你开始使用Kotlin开发。在将Java代码粘贴到Kotlin文件时,可以转换整个Java文件或转换一段代码片段。很稳!

Kotlin 是开放的

与Android一样,Kotlin是Apache 2.0下的一个开源项目。Google对 Kotlin 的选择重申了Android对开发者 开放生态系统的承诺,随着 Google 的发展和 Android平台的发展,Google 希望 kotlin 语言的发展, 也很高兴看到 kotlin 语言的发展。

Tamic的一些话

Java 10 的 新特性也刚好( Java 10 新特性解密)迎合kotlin的某些特性一样,以后即将用var 来定义变量和类。 因此我们发现Koltin将来必定是开发者所关注的一名语言趋势,假如有一天,Google像抛弃 Eclispe,投坏Android Studio一样,放弃对Java的支持,到时候,至少你还能掌握kotlin开发,不然,你是要转行吗?

查看官方 GITHUB :https://github.com/JetBrains/kotlin

参考资料:Google开发者指南 作者:Tamic 开发者技术前线 欢迎各界读者投稿,加群请回复“加群”, 免费小密圈请点击:这年头还有免费小密圈? 快加!

开发者技术前线 汇聚开发者关心的 最新最热的

技术干货,行业资讯,职场思考, 热点思维,和一线面经!

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2018-01-03,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 开发者技术前线 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 先进 简洁 安全。
    • 代码更安全
      • 语法更易读和简洁
        • 和 findViewById 说再见
          • 扩展功能, 而不是用继承
            • 100%的和Java可互操作性
            • 强大的开发工具支持
            • Kotlin 是开放的
            • Tamic的一些话
            领券
            问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档