kotlin上のこの13専門家の意見、およびモバイル開発者の80%は聞いていません

私は本当にKotlinにそれを学ぶためにしたくないですか?

2017年5月18日にこの質問、私たちは初めてダイヤルバックに答えるためには、Google I / OでAndroidのチームは2017年の会議は、Kotlinは、ファーストクラスのサポートにおける公用語になって発表しました

その時、Googleの技術牛スティーブ・イェジは、物品の経験Kotlinの要約の使用に関する記事を公開:「なぜKotlin言語をより良いあなたが使用ジャンクよりも?」

時間のためにホット誘発性で、この爆発的な情報は、この日まで続きます。

時間は経験のkotlinの開発を使用して、その後、私たちは、国内外での技術的な専門家を見て真実をテストするための唯一の基準であります!

GoogleのAndroidの専門家Annyceデイビス:「Kotlinが登場したとき、それは私にクリーンで洗練さの両方のGroovyの文法的性質の多くを連想させるので、私はすぐにそれに描かれました..」

GoogleのAndroidの専門家セバスティアーノポッジ:「私は本当に私は個人的には、多くの場合、コーディングになり考える言語のように、同じ状況下でコーディング、Java言語を使用する前に比べて、楽しいものになります。私は痛みを感じるし、面倒な.Kotlinは時々私は10倍、開発者の生産性のように感じさせます。」

GoogleのAndroidの専門家ホルヘ・バローゾ委員長は、「Kotlinは、その前に、KotlinのAndroidがもたらす性質の欠如は、他のJavaプラットフォームに比べてAndroidの開発の大きな一歩、Java開発者のAndroidプラットフォームは多少今でもそこに、古くなりましたJavaの8を押して、しかし、それはまだ私たちのお気に入りの近代的なプログラミング言語になることはありません。

GoogleのAndroidの専門家マーク・アリソン:「私もKotlinのようなものの、私はKotlinを書かれたコードを維持するのが難しいかもしれだから、成熟度モデルとベストプラクティスを持たないオンラインの製品を使用することができるように十分に成熟だとは思いません..」

GoogleのAndroidの専門家ドミトロDanylyk:「アンドロイドの面で世界に残っている開発者にとっては、Kotlinは、実際のゲームチェンジャーである、それは私のお気に入りの機能をたくさん持っている:空気の安全性タイプ、データクラス、属性、および遅延ロードは、拡張します機能、コルーチン、安定性など。

私はこのプロジェクトにあまりにも多くのサードパーティのライブラリを導入する必要はありませんでしたので、私は、エンコードにKoltinを使用して愛し、Kotlinはサポートのほとんどを提供することは非常に良いされています。"

GoogleのAndroidの専門家Anup Cowkur:なぜAndroidは、このような素敵な機能を持つことができません:「私はしばしば不思議、ハスケルとエリクサーのような、そのような言語がエンコードされているので、私のAndroidの開発を使用していますか」?。「今、私の使用Kotlinは、我々が行うことができます。」

デビッドVávraGoogleのAndroidの専門家:「私のメインのアプリケーション(セトルアップ)本番環境では、私がKotlinを使用するには、それが成熟した十分ですが、Java(任意のバージョン)に比べて、既存のJavaと.Kotlinは完全に互換性の多くの利点を持っていますツールとライブラリ、および中のAndroid Studioの良い使用することができます。あなたは今、新しいアプリを作成した場合、私は間違いなくKotlinを選ぶだろう。」

Googleのダニエルの自慢のさまざまなを聞いた後、彼自身のトランペットの容疑者をHuangpojingことは避けられませんか?次に、我々は、国内のモバイル開発分野でkotlinに関する意見の神を見て:

香港ヤン:私は、私は特定の妨げそれを勉強していない場合は、「私はいくつかの外で、Googleのデータベースに毎日を含め、新しいライブラリや記事をいくつか見ていきましょう、Kotlinによって非常に私たちの外部出力の一部がありました。私はKotlinを勉強することにした、より良い学ぶために!要するに、我々はむしろ最も人気のある何技術よりも彼らの最も緊急のニーズを理解しておく必要があります。」

郭林:「プロジェクトkotlinスピードの建設を大幅に低減し、今私は本当に香り変更されることを、kotlinを噴霧する前に!」

エンタープライズプラットフォームR&D Liuzi鵬ラウンド米国のレビュー:「私は従来のJava Kotlinに比べて利点がAndroidの開発に使用され、その多くは、よりシンプルで簡単な表現構文スタイルだけでなく、Kotlin糖衣構文に依存だと思うが大幅に、開発効率を向上させるコードの量を減らすこと、減らすことができますメンテナンスコスト。

今の最大の欠点は、バーの低い普及率です!あなたはKotlinを持つ人であればチームの開発は、それは確かにいくつかの通信の問題や葛藤を持っています。"

アリは技術チームを液滴:あなたはそれがJava構文と比較されていることを実感すぐに、Kotlinで事業を展開していた場合はKotlinが、これらの改善を作ったとして、」より簡潔かつ効率的なものです:

大幅に型推論を達成するため、およびJava SEは10でローカル変数の唯一の派生をサポートしています。
staticキーワードが、オブジェクトの導入を放棄し、あなたは直接シングルトンを宣言するためにそれを使用することができます。比較として、Javaは同等のものを表現するために、いわゆる「シングルトン」を構築するために依存しなければなりません。
発表は、このようないくつかのデータクラス(データ型)、封印されたクラス(シール形)などのJava「特別クラス」、で、私たちは、より深いレベルでの代数的データ型、組み合わせて使用される表現を構築することができません。"

テンセントBugly:「なぜ私たちはKotlin Aに必要なのですか?消えゲッターとセッター、また、NULLポインタを参照して、スマートキャストは、ログを打つ、Utilsの、おやすみButterKnifeをさようなら...」

上記の専門家がkotlinを使うの気持ちを聞いた後、我々はあなたが技術的なレベルから完全にKotlin言語を学ぶべき理由を再分析:

0#Javaの相互運用性

Kotlinは、Javaで100%の相互運用が可能です。あなたはあなたに常にJavaプロジェクトの開発をKotlinを継続して使用することができます。あなたのすべては、Javaフレームワークに精通しているパートナーをKotlinの書き込みは、あなたが頑固またはJavaアプレットを書き込むことができるかどうか、まだ任意のフレームワーク利用可能です。

#1おなじみの構文

Kotlin学界奇妙な言語で生まれていません。構文は、多かれ少なかれ、いくつかの理解を持つことができ、任意のOOPの開発者がフィールドに精通しているです。もちろん、いくつかの異なるとJava、たとえば、再構築されたコンストラクタとval変数宣言のために、そしてそうです。以下は基本的なサンプルコードKotlinです。

2#文字列補間

これは、Java String.Formatの()メソッドの実装の読みやすさとより、Kotlin賢くに相当します。

#3型推論

#4インテリジェント型変換

Kotlin 编译器会跟踪你的逻辑代码并在需要的时候进行自动的类型转换,这意味着我们不需要在显示转换时做更多的 instanceof 检查:

5# 更直观的相等性比较

你不再需要调用 equals(),因为 == 操作符也可以用来比较结构的相等性:

6# 默认参数值

不需要像 Java 那样定义很多包含不同参数的相似方法:

7# 命名参数

结合默认参数值,命名参数可以消除 builders 的使用:

8# When 表达式

9# Properties

可以给公共字段自定义 set 和 get 行为,这意味着不再会因为那些没用的 getters & setters 导致代码疯狂膨胀。

10# Data 类

这是一个 POJO 类,包含 toString(), equals(), hashCode(), 和 copy()方法,和 Java 不同的是,它不会超过 100 行代码:

11# 操作符重载

可以重载预定义的一组操作符来提升代码的可读性:

12# 解构声明

一些对象是可以解构的,一个很有用的例子就是对 Map 进行迭代:

13# Ranges

14# 扩展函数

还记得你第一次用 Java 实现一个 List 的排序吗?你找不到一个 sort() 函数,然后你就四处求助,最终找到了Collections.sort()。后来你需要将一个字符串的首字符变成大写,最终你还是自己写了一个方法来实现,因为你当时还不知道有这么个东西StringUtils.capitalize().

如果只有一种方法可以向已有的类添加新的函数,这样 IDE 就可以帮助你在代码完成时找到正确的函数。在 Kotlin 里你可以这么做:

Java 是我们应该称之为是一个几乎静态类型的编程语言。Java 的 String 变量类型无法保证它不会等于 null。尽管我们已经习惯了这样的情况,但它否定了静态类型检查的安全性,导致 Java 程序员总是活在各种空指针异常的恐惧中。

Kotlin 通过区分非空类型和允许为空类型来解决这个问题。类型默认是不允许为空的,可以通过在后面加一个 ? 问号来表示允许为空,例如:

Kotlin 强制你必须在访问一个可为空的类型变量时候必须确保不会发生空指针:

虽然看起来有点麻烦,但这的确是 Kotlin 一个微小却又非常重要的特性。我们仍可以使用智能的转换,可以在需要的时候将允许为空的类型转成不允许为空:

我们也可以使用安全调用方法?. 该表达式在 b 为空时返回 null,而不是抛出空指针异常:

安全调用可以链接在一起,以避免像其他语言一样存在大量嵌套的 if-not-null 检查,如果我们想要一个默认值而不是 null 时,可以用 ?: 操作符:

如果没有适合你的,那么你应该是需要一个空指针了,你将不得不显式的进行处理:

16# 更好的 Lambdas

嘿,帅哥,这是一个很好的 Lambda 系统 —— 在完美的可读性和简洁之间取得非常好的平衡,这得益于非常聪明的设计选择。其语法简单直接:

优点体现在:

  1. 如果 lambda 是方法的最后一个参数或者是唯一参数的话,那么方法的括号可以移动或者省略.
  2. 如果我们选择不去声明单参数的 lambda 表达式的参数,那么 Kotlin 会隐式的将之命名为 it.

结合上述优点,下面的三个不同的语句效果一样:

这个可以让你编写更加简洁的函数式代码,就像下面这样优雅:

Kotlin 的 lambda 系统和扩展函数结合,可以非常棒的用来开发各种 DSL。例如 Anko 这个 DSL 的例子可以增强 Android 的开发:

17# IDE 支持

如果你打算开始使用 Kotlin 开发项目,在工具上你会有很多的选择。但我强烈推荐使用 IntelliJ ,因为它自带 Kotlin 的支持 — 它的特点展示了同一组人设计的开发工具和语言时的优势。

如何学习kotlin?

需要我们去学习官网教程 或者 google 提供的快速学习的教程,当然这里只是快速浏览就行了,主要还是得靠实践,先熟悉基本的语法,然后找时间对语法进行了解,最后在实践开发中使用高阶特性。

官网教程-中文:https://www.kotlincn.net/docs/reference/
kotlin项目实战专题资料
需要上述kotlin项目实战专题资料的朋友,添加VX:13203163609,即可免费领取

Android_Alvin_

おすすめ

転載: www.cnblogs.com/Android-Alvin/p/12409010.html