首页 > 房地产知识干货

kotlin中文文档(kotlin入门)

Kotlin系列–不用findViewById()的Kotlin怎生书写

前面我们介绍了Kotlin的基本用法,基本用法只是给我们展示了Kotlin最为简易,最为和善的一面。既然能够被Google钦点,那也说明Kotlin有其不平凡的伟大之处。下面依然是先介绍部分Kotlin知识,再练习一下Kotlin在Android中的使用,都是从*学来的,强烈建议*学习中文/英文。文中若有理解失误之处,欢迎批评指正。

(1):创建集合

在Kotlin的世界里,如果我们需要对象,那么基本上不再需要与new打照面了。var我们在前面介绍中知道,她是可以定义变量和常量的一个关键字。比如定义一个整型的变量。

同样,我们也可以用var来定义一个集合

这样我们就可以得到一个整型的集合。我们也可以

生成一个字符串集合。同时我们还可以对这些集合进行过滤*作,比如

上面这个语句的意思是,在刚才生成的集合基础上,调用一个filter函数,该函数有个过滤作用,可以将数组中不满足条件的元素过滤掉,然后将满足条件的元素生成一个新的集合。其中的it不能更换为其他的阿猫阿狗,还有注意是花括号,这里是约定俗成的写法。这个语句的另一种写法是

看起来不明觉厉。其实我也不是很懂哈。

(2):给函数设定默认值

(3):===和==区别

==比较真实的值,而===则比较内存地址,比如下面这样一个例子

上面这个例子,将会分别输出true,false,true,true。因为自动装箱之后,数字不会保留同一性,但会保留相等性。

(4):数字的隐式转换消失,需要显示转换

由于Int和Long是两种不同的类型,所以不能进行隐式转换,需要显示转换

不仅这样,就算将一个Int类型的值和一个Long类型的值进行值的比较也不可以

用*的一句话就是

那么怎么才能不报错呢?那就需要显示转换

每个数字有以下几种显示转换

当然*也给了我们一个计算的例子,用来表现隐式转换并没有完全消失不见

这里的变量a就被自动推导为Long类型

(5):创建数组

(6):字符串

在kotlin中字符串分为转义字符串和原生字符串。转义字符串类似j*a中的字符串。原生字符串如下

输出如下:

我们通过上面的输出可以看出来在原生字符串中,空格,换行,转义字符,都会原生保留下来。而至于转义字符串和j*a非常相似,相信大家都比较熟悉了。

前两天看一个Android-Kotlin开源项目 PoiShuhui,项目是一个大二学生写的,顿时有一种被拍在岸上的感觉。看来活到老学到老非虚言也,现在的学生追技术,手速比我这*还块啊。打开项目一看,顿时傻眼了。这个FloatingActionButton没有findViewById啊,也没有什么注解,到底是为什么可以直接使用呢?

还好有官方文档,在 Android扩展这一小节中,提到只要在build.gradle添加一个插件,就可以让我们摆脱掉findViewById的困扰。

不知道是不是我理解失误,明明说的是在项目的build.gradle中添加,我添加了然后没用,最后还是移到了app中的build.gradle中,插件才起作用。

activity:

这样我们布局在layout中的webview的id就可以直接使用了。下面将Kotlin的传统写法也列出来

至于这个插件到底起到什么作用呢?官方文档是这么解释的

这个插件基本上不会增加apk的大小,所以尽管放心使用吧。

android*作系统用什么语言开发的

安卓官方开发语言:Kotlin初探

Kotlin是一种在 J*a虚拟机上执行的静态型别编程语言,由 JetBrains开发团队所开发。该语言有几个优势。

它大大减少需要写的样板代码的数量。避免空指针异常等整个类的错误。构建服务器端程序、Android应用程序或者在浏览器中运行的前端程序。通过 100% J*a互*作性,利用 JVM既有框架和库。

在Kotlin中变量声明有两种类型,val修饰变量是只读变量即只能赋值一次,再次赋值时就会编译错误,如果需要多次修改值就需要使用var。

扩展资料:

The IntelliJ Kotlin插件扩展了 J*a编译器使得 Kotlin代码能够得以编写、编译和调试。除此之外,关于基本的 J*a集合,已经有编写好的帮助函数,可以更顺畅地衔接将在 J*a 8*现的集合扩展。

Kotlin,类似 Xtend一样,旨在提供一种更好的 J*a而非重建整个新平台。这两种语言都向下编译为字节码(虽然 Xtend是首先转换成相应的 J*a代码,再让 J*a编译器完成繁重的工作),而且两者都引入了函数和扩展函数(在某个有限范围内静态地增加一个新方法到某个已有类型的能力)。

参考资料来源:百度百科-Kotlin

「仓颉」内测人员辟谣:不是中文编程

「仓颉」内测人员辟谣:不是中文编程

「仓颉」内测人员辟谣:不是中文编程,「仓颉」正式开启了内测,目前已经有部分开发者拿到源代码。之前对于「仓颉」猜测的一些传言,也有了明确的答案。「仓颉」内测人员辟谣:不是中文编程。

「仓颉」内测人员辟谣:不是中文编程1

华为编程语言实验室,面向部分开发者发布了心得语言试用报名的问卷。在完成问卷的填写后,会根据邮件进行后续信息的通知。

早在2020年9月的时候,有微博博主就*了,华为正在研发自主编程语「仓颉」,带领整个团队的是南京大学的博士导师冯新宇。在20年的时候就网传「仓颉」是为了鸿蒙来的。

如今消息已经证实,确实「仓颉」是根据鸿蒙HarmonyOS量身打造的编程语言,通过「仓颉」鸿蒙和欧拉在应用开发生态上进行打通。

基于上面消息网友展开了广泛讨论,其中有一个网友说中文编程语言如果推广开,可以降低编程的门槛,这是好事。但是其他网友炸锅了:

也就是有网友认为我国编程语言是中文的,中文编程语言可以降低编程门槛。持反对意见的网友觉得“你学好中文了,你会写书写作文?”。

但是有一些表示自己是仓颉内测成员的网友来辟谣了。已经签订保密条款限制,目前只允许辟谣。首先非中文编程,从掌握的代码的来看也不存在网传的“套壳”。内侧的根本原因就是还在改进。所谓内侧人员不能泄露任何文档、代码风格,内侧群聊等等相关消息。

而且仓颉的英文直译是Cangjie;

「仓颉」内测人员辟谣:不是中文编程2

备受关注的华为自研编程语言「仓颉」,又火上热搜了。

这次是因为「仓颉」正式开启了内测,目前已经有部分开发者拿到源代码。

前不久,华为编程语言实验室发布了一份“新语言试用报名-202203”问卷,正式征集一小批开发者对「仓颉」编程语言进行小范围测试。

从问卷内容来看,开发者们需要填写Gitee主页、职业和*等信息,然后等待邮件通知。

现在,随着更多细节被透露出来,之前对于「仓颉」猜测的一些传言,也有了明确的答案。

英文名Cangjie,并非中文编程

事实上,早在去年10月,华为官方就明确透露过“将发布自研鸿蒙编程语言”。

对此,华为消费者业务软件部总裁龚体表示,它将“为鸿蒙生态基础设施建设补上最后一环”。

同时,华为也已经申请注册了“华为仓颉”、“仓颉语言”等商标,分类包括科学仪器、设计研究等,而部分“仓颉”商标则还在驳回复审、注册申请的阶段。

这里看到华为还注册了一个叫“仓杰”的商标,目前也已经通过申请(手动狗头):

△图源@企查查APP

时间来到今年3月份。

随着内测的开启,部分开发者在拿到「仓颉」的源代码后,也对此前漫天飞的猜测和传言进行了一些回应。

其一,「仓颉」的英文名就是Cangjie,而不是此前传闻的“char”。

当时华为被曝研发「仓颉」后,知乎就传出过这门编程语言英文名是“char”的消息:

目前这个传闻已经被辟谣。

其二,「仓颉」不是中文编程,也不存在所谓的“套壳”。

据知乎一位匿名用户表示,体验后发现「仓颉」编程语言“跟中文半点关系没有”,语法类似go+j*a。

其实,现在随手一搜还是能搜到一大堆关于「仓颉」是中文编程的假消息……

其三,之所以还在内测,是因为包括团队和内测成员都还在改进代码。

嗯,问就是还在修bug(手动狗头)。

但其实,大家最好奇的还是「仓颉」这门编程语言究竟长啥样。

事实上,此前华为编程语言实验室主任、南京大学冯新宇教授,已经开设过一门关于《编程语言的设计和实现》的课程,目前华为官方已放出B站视频。

华为官方开设过编程语言课程

在讲座一开始,冯教授就透露了自己目前进行的一些工作。

具体来说,学术上的研究主要包括PL理论及应用等,而工业方面的研究,则主要是带领华为编程语言实验室进行工业编程语言的设计和实现:

在冯新宇教授给出的课件中可以看见,目前的编程语言类型主要可以分为以下几种,其中着重提到了平台型语言:

像C#、Go、Swift这些开源编程语言,也都是由像谷歌、微软和苹果这样的*自己投入去做的,以此掌控语言的技术演进策略和方向。

但华为「仓颉」究竟是一门怎样的语言,目前还有待官方正式公开信息。

「仓颉」内测人员辟谣:不是中文编程3

16日,华为编程语言实验室发布了一份“新语言试用报名-202203”问卷,面向部分开发者发布了华为新语言的试用报名问卷,开发者们需要填写Gitee主页、职业和*等信息,然后等待邮件通知。

同时,在问卷填写完成后,将通过邮件进行后续信息的通知。根据华为此前公布的内容来看,这款“新语言”,指的应该就是华为在2021年开发者大会上,公布的自研编程语言“仓颉”。

华为副总裁、计算产品线总裁邓泰华曾2021年 9月在接受采访时表示,仓颉是华为根据HarmonyOS量身打造的编程语言,华为2022年将推出自研的编程语言仓颉,将鸿蒙和欧拉在应用开发生态上进行打通,拓展系统的可能性。华为消费者业务软件部总裁龚体表示,它将“为鸿蒙生态基础设施建设补上最后一环”。

随着内测的开启,部分开发者在拿到「仓颉」的源代码后,在网上对之前各种谣言进行了回应和澄清:

第一,不是中文编程;

第二,不存在所谓的“套壳”;

第三,内测的`原因归根结底还是正在改进。

第四,“仓颉”的英文名是直译“Cangjie”,不是“char”。

我们*也应该有自己的编程语言了…

苹果有Swift;

谷歌有Dart;

微软有 TypeScript,它的作者安德斯·海尔斯伯格,是C#的首席架构师;

连小小捷克的JetBrian“喷气脑”*搞的Kotlin,这货上天入地无所不能,是我目前知道的应用范围最广泛的语言……还有Julia近来也是掀起一股热潮……我们*也应该有自己的编程语言了…

9月初,微博博主“IT工程师”爆料华为正在研发自主编程语言“仓颉”,由南京大学的计算机科学与技术系博士生导师——冯新宇领衔开发。

华为自研编程语言并非秘密,华为在编译器与编程语言方面早有动作。

方舟编译器,就是华为在编译器方向的研究成果之一。

2019年8月31日,华为在开源平台上放出了方舟编译器的源代码,这是华为首个完全自主研发的编译器平台。

早前,在谷歌对华为封锁GMS的时候,华为以“先见之明”在制裁不久后就发布了HMS,如今HMS全球开发者已经达到180万,华为应用市场APP Galley全球活跃用户也达到了4.9亿,应用分发量达到2610亿,成为全球第三的应用商店。

让我们一起期待正式公布的那一天吧!

Kotlin-为Android项目生成Doc文档

类似于J*a中的J*aDoc工具,Kotlin的官方也发布了一款生成Kotlin文档工具。 dokka

不过它确实不是很好用。

坑1:截止在我写这边文档时候,该工具的最新版本为0.10.0。在这个版本中,作者将两个插件进行了合并(一个适用于Android项目的插件,一个则用于通用Kotlin项目插件)。导致了出现了一个大坑。详情请见这里 [ *github*/Kotlin/dokka/issues/213(*github*/Kotlin/dokka/issues/213)。

经过一早上的踩坑折腾,发现在回退到上一个版本,0.9.17版本没出现类似问题。

然后同步项目之后,该插件会为项目添加一个dokka的task。

坑3:GC overhead limit exceeded。解决了上一个问题,又出现了一个oom的问题。这个问题也算是常见,不过我这个总共不超过十个class文件,居然翻车了。。好吧,果断在根目录下gradle.properties文件中配置扩大一下堆栈大小

在成功构建完所有的构建变体任务后,终于看到了在输出目录 outputDirectory中的出现了j*adoc文件夹。

打开index页面,你就可以看到dokka为项目生成的文档了。

在以上声明中,dokka就不会为androidx作为包名前缀的类生成文档。问题似乎得到了解决。但是这是一种舍近求远的方法。就好比你去一家店想买一杯奶茶,老板居然问你不想喝什么口味的。。因为在后续的开发中你可能还会引入新的包,dokka可能会为其他R文件生成以其他报名开头的文档。那么此时你必须继续添加packageOptions配置。。

本文链接:http://www.po-te.com/html/87958425.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件举报,一经查实,本站将立刻删除。