来入门一下kotlin吧
Kotlin是什么?
Kotlin是一种在java虚拟机上运行的静态类型的编程语言,被称之为 Android 世界的Swift,由 JetBrains 设计开发并开源。
Kotlin的优势!
Kotlin可以编译成java字节码,也可以编译成JavaScript。方便在没有java虚拟机的主机上运行。(据说学会Kotlin,你就是一名全栈工程师 (/偷笑))
并且的2017年的 Google I/O大会上,Google宣布将Kotlin作为Android的官方开发语言。(这就意味着,作为一名“资深‘的android开发工程师,以后就必须得会Kotlin了)
Kotlin相对于java开发android有什么优势呢?(个人亲身体验)
拿辉哥的话说:一个字!简洁!(一直用java写android,当我用kotlin写了android的一个Demo之后,暂且不讨论它的底层等等,对于写法上,就是简洁!可能本章节体现的简洁不是很明显)
这一篇的入门,前提是你是有java基础的情况下。这样子你可以举一反三,才会看懂一部分。所以......往下看吧
Kotlin的使用!(这里以Android Studio 为例进行演示)
一、安装Kotlin插件
mac本用快捷键(command + ,)打开设置面板,找到Plugins 进行搜索 (如图所示)
找不到不要紧,点击蓝色超链接。
找到kotlin进行下载,然后重启Android studio即可。
二、开始将java代码转为kotlin(激动吗,有点小激动呢)
我们来新建一个项目,(这里步骤较多,占用图片资源大,但是很简单,不会的童鞋可以问问android的同学,或者可以问小黄哦,小黄已经得我真传,开始学习android了)
好了好了,废话不多说,开始转换。
像这种我们类名前面有蓝色背景,黑色字体C的为java代码,C代表的是 class。那么如何快速转换为kotlin代码呢?
我们找到顶部菜单栏的code选项,并且选中最下方的 Convert Java File to Kotlin File 开始转换
转换完成后,点击右上角 Configure,然后默认为最新版本直接点击 OK即可。
ok,完美转换
package kotlindemo.yjy.com.mykotlindemo import android.support.v7.app.AppCompatActivity import android.os.Bundle class MainActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) } }
可能你还感觉并没有多大的改变,没关系,我们慢慢往下看。
三、开始简单实用kotlin开发android吧!(这里东西较多,会有与java开发作比对的部分)
1.来一句最简单的,hello world吧!
先来看看java代码:
public class MainTestActivity extends Activity { private TextView textView; @Override protected void onCreate(@Nullable Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); initview(); } private void initview() { textView = findViewById(R.id.main_tv); textView.setText("hello world!"); } }
接下来是kotlin代码:
class MainActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) initview() } fun initview(): Unit { main_tv.setText("hello world") } }
kotlin代码免掉了findviewbyid的方法,这个依赖在创建项目时勾选kotlin会自动导入,或者手动导入都可以。
依赖代码放这里:(我想懂android的都知道怎么用,你懂android吗? /偷笑)
apply plugin: 'kotlin-android-extensions'
2.来一个比较大小的代码
先来看看java代码:
private int max(int num1, int num2) { if (num1 > num2) { return num1; } else { return num2; } }
再来看看kotlin代码:
fun max(num1: Int, num2: Int): Int = if (num1 > num2) num1 else num2
一样的含义,也许你并不感觉kotlin有简洁多少,少许代码感觉不出来,那么继续往后看。
3.来看一下返回String类型的时候吧()
这次我们先看看kotlin代码:
fun getstr(str: String): String = str?.length.toString()
//kotlin为我们提供了避免string类型空指针,这行代码的意思是:str为不为null?为null就返回str的length,不为null就返回str原来的值。
再来看看java代码:
private String getStr(String str) { return str; }
//上面的代码一看,直接返回,如果str为空怎么办呢,java会给我们直接报空指针异常。要是为了避免空指针异常就得用下面的改进版。
private String getStr(String str) { if (str != null) { return str; } else { return ""; } }
用改进版的代码跟kotlin一比,这次终于知道简洁在哪里了吧。
4.来看看变量的定义与使用
来看看kotlin代码:
//定义string类型的变量, var i = "a" //或者 var i1: String = "a" //定义int类型的变量 var a = 1 //或者 var a1: Int = 3 //表示不可修改的参数(类似于java的final) val c1 = "abc"
可以看出,koltin可以不指定类型,当kotlin不指定类型的时候,kotlin会自己转义,有引号的默认为string,没有引号的数字会自动转成int。
再来看看java代码:
//定义String类型的变量 String i = "a"; //定义int类型的变量 int a = 1; //修饰不可修改的参数。或者说只可以赋值一次。 final String c1 = "abc";
不难看出,java的代码所有的变量都必须指定一个类型,因为java是强类型语音,这就是为什么我们跟后台同学们调试参数的过程中总是出现问题的原因。如果改用kotlin会不会这个问题就少了呢,我也不好说,哈哈。
恭喜你已经看完了,看完之后别人问你会kotlin吗?你可以自豪的说,我已经入门了。
这一节课就到这里,学习语言最基础的东西。 后续还会更新内容,有更简洁的东西。
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
[雪峰磁针石博客]flask构建自动化测试平台7-添加google地图
本章将介绍以下主题: mock数据库 创建犯罪地图 本文最新版本 代码地址 mock数据库 mockdbhelper.py class MockDBHelper: def connect(self, database="crimemap"): pass def add_crime(self, category, date, latitude, longitude, description): data = [category, date, latitude, longitude, description] for i in data: print (i, type(i)) def get_all_crimes(self): return [{'latitude': -33.301304, 'longitude': 26.523355, 'date': "2000-01-01", 'category': "mugging", 'description': "mock description"}] def add_input(self, data): pass def clear_all(...
- 下一篇
Java类加载机制总结
加载(Loading) 加载过程是Java的一大特点,类的来源可以多种多样,压缩包、网络字节流、运行时动态计算生成(reflect)等等...这也造就了Java语言强大的动态特性。 java.lang.Class 验证(Verification) 这一过程主要是为了确保Class的字节流中包含的信息符合虚拟机标准,以免造成破坏 文件格式验证 元数据验证 字节码验证,通过数据流和控制流分析确定程序的语义是合法的 符号引用验证,确保解析动作能够正常执行 准备(Preparation) 这一阶段将会为类变量分配内存并设置其初始值,注意此时进行内存分配的仅包括类变量(static修饰),并且初始值通常情况下是数据类型的零值而不是设定值,如下例 public static int val = 123; 复制代码 在这一阶段变量val的赋值是0而不是123,因为此时尚未执行任何Java方法,而对val复制的putstatic指令在初始化阶段后才会执行。 当然也有特殊情况,如下 public static final int val = 123; 复制代码 加上final关键字修饰后,Java编译时...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- CentOS8编译安装MySQL8.0.19
- Windows10,CentOS7,CentOS8安装Nodejs环境
- CentOS7编译安装Cmake3.16.3,解决mysql等软件编译问题
- Eclipse初始化配置,告别卡顿、闪退、编译时间过长
- SpringBoot2整合MyBatis,连接MySql数据库做增删改查操作
- SpringBoot2整合Thymeleaf,官方推荐html解决方案
- SpringBoot2整合Redis,开启缓存,提高访问速度
- Docker使用Oracle官方镜像安装(12C,18C,19C)
- CentOS7,8上快速安装Gitea,搭建Git服务器
- Docker安装Oracle12C,快速搭建Oracle学习环境