浅谈Kotlin(二):基本类型、基本语法、代码风格
浅谈Kotlin(一):简介及Android Studio中配置
通过上面的文章,在Android Studio中我们已经可以进行Kotlin编程了,接下来开始学习Kotlin的基本类型及语法。
一、基本类型
在 Kotlin 中,所有变量的成员方法和属性都是一个对象。
一些类型是内建的,它们的实现是优化过的,但对用户来说它们就像普通的类一样。
注意,第一个字母大写,Kotlin 区分大小写
主要是以下几种字面值常量:
--数型:
123
--长整型要加大写L
:123L
--16进制:0x0f
--二进制:0b00001011
注意不支持8进制
Kotlin 也支持传统的浮点数表示:
-- 默认 Doubles :
123.5
,123.5e10
-- Floats 要添加f
或F
:123.5f
二、基本语法
知道了Kotlin支持哪些基本类型。下面开始了解基本语法。
1、Kotlin定义声明一个属性的两种写法
· var : 变量
· val : 常量
注意:不管定义常量(val)还是变量(var) 都必须要给定一个值。
声明变量/常量的语法为 : var age : Int = ;
val name : String = "Alice" ;
常量(val)/变量(var) 属性名 : 类型 = 初始值 ;
Kotlin还提供一种写法 var age = ;
发现省去了 : Int 即 声明这个属性是什么类型的,也能编译通过,这就是Kotlin的特点,自动推导出该值是什么类型。
都没有报错。
①、变量var的语法
很奇怪java中 变量 并不要求要初始值,我们看下Kotlin中 不给一个变量初始化会发生什么。
结果是报错:提示需要添加一个初始值。
选中" Add initializer" 之后 会发现系统给我们一个初始值 0 。
看一下上述6种基本类型 系统给定的初始值:
②、常量val的语法:
声明常量的时候和变量一样也需要提供一个初始值,并且这个值是之后无法修改的。
上面可以看到,定义了一个Int类型的常量age ,值为1。
后续代码中对age常量进行赋值修改,提示 让 age这个常量 作为 变量类型。选中会发现 val age:Int = 1 --> var age:Int =1;
综上:val声明常量和java中final使用一致,var声明变量必须要给定一个初始值。
2、Kotlin注释规范
与java一致
①、 单行注释
②、块级注释
3、kotlin定义一个方法/函数
基本格式:
fun 方法名(参数名 : 类型 ,参数名 : 类型 ...) : 返回类型{
}
举例:定义一个方法,传入两个类型Int的参数,计算参数之和,返回Int类型的结果。
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_ktest)
var result : Int = sum(10,20) ;
} /**
* 计算两个Int类型的和并返回
*/
fun sum(a: Int , b: Int) : Int{
return a + b
}
注意点:方法中的参数不需要加var
看到这,大家也应该会创建基本的方法了。但是有个疑惑,如果一个方法不需要返回值呢,类似于Java中的 void
Kitlin是用Unit处理的,可以看到,sum方法没有返回值, 调用的时候 写法是错误的,无法将一个无返回值的方法转为某一个类型。
正确写法如下:
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_ktest)
var a = sumA(10,20) ;
}
/** * 计算两个Int类型的和并返回 */
fun sum(a: Int, b: Int): Unit {
//不做处理
}
//如果无返回值,Unit也可以省略
fun sumA(a:Int , b:Int) {
//不做处理
}
三、代码风格
1、命名风格
--使用骆驼命名法(在命名中避免下划线)
--类型名称首字母大写
--方法和属性首字母小写
--缩进用四个空格
--public 方法要写说明文档,这样它就可以出现在 Kotllin Doc 中
2、Unit
如果函数返回 Unit ,返回类型应该省略:
浅谈Kotlin(二):基本类型、基本语法、代码风格的更多相关文章
- 【.Net基础二】浅谈引用类型、值类型和装箱、拆箱
目前在看CLR via C#,把总结的记下来,索性就把他写成一个系列吧. 1.[.Net基础一] 类型.对象.线程栈.托管堆运行时的相互关系 2.[.Net基础二]浅谈引用类型.值类型和装箱.拆箱 引 ...
- 浅谈Kotlin(四):控制流
浅谈Kotlin(一):简介及Android Studio中配置 浅谈Kotlin(二):基本类型.基本语法.代码风格 浅谈Kotlin(三):类 浅谈Kotlin(四):控制流 本篇介绍Kotlin ...
- 浅谈Kotlin(三):类
浅谈Kotlin(一):简介及Android Studio中配置 浅谈Kotlin(二):基本类型.基本语法.代码风格 浅谈Kotlin(三):类 浅谈Kotlin(四):控制流 前言: 已经学习了前 ...
- 浅谈Kotlin(一):简介及Android Studio中配置
浅谈Kotlin(一):简介及Android Studio中配置 浅谈Kotlin(二):基本类型.基本语法.代码风格 浅谈Kotlin(三):类 浅谈Kotlin(四):控制流 前言: 今日新闻:谷 ...
- 浅谈 js 数字格式类型
原文:浅谈 js 数字格式类型 很多人也许只知道 ,123.456,0xff 之类的数字格式.其实 js 格式还有很多数字格式类型,比如 1., .1 这样的,也有 .1e2 这样的. 可能有人说这是 ...
- 浅谈Kotlin中的函数
本文首发于 vivo互联网技术 微信公众号 链接:https://mp.weixin.qq.com/s/UV23Uw_969oVhiOdo4ZKAw作者:连凌能 Kotlin,已经被Android官方 ...
- Android开发-浅谈架构(二)
写在前面的话 我记得有一期罗胖的<罗辑思维>中他提到 我们在这个碎片化 充满焦虑的时代该怎么学习--用30%的时间 了解70%该领域的知识然后迅速转移芳草鲜美的地方 像游牧民族那样.原话应 ...
- 如何用一个语句判断一个整数是不是二的整数次幂——从一道简单的面试题浅谈C语言的类型提升(type promotion)
最近招聘季,看JULY大哥的面试100题时,碰到这么一个扩展问题: 如何用一个语句判断一个整数是不是二的整数次幂?(此题在编程之美也有) easy, 2的整数次幂的二进制形式只有一个1,只要用i和i- ...
- 【Vue】浅谈Vue(一):从模板语法数据绑定、指令到计算属性
写在前面 今年前端届比较有意思,从大漠穷秋发表文章比较angular和vue,继而致歉vue作者.社区,从谷歌辞去Angular Developer PM in China一职并且呼吁大家停止各种无谓 ...
随机推荐
- RISC-V指令集介绍 - 整数基本指令集
1. 寄存器 32个x寄存器,RV32下x reg是32位宽 x0:硬连线 常数0 专门的零寄存器 x1-x31:31个通用reg 返回地址:没有强制要求那一个x作为lr,但是一般用x1 pc:额外的 ...
- gdb调试的layout使用
layout:用于分割窗口,可以一边查看代码,一边测试.主要有以下几种用法:layout src:显示源代码窗口layout asm:显示汇编窗口layout regs:显示源代码/汇编和寄存器窗口l ...
- Mac-Navicat Premium For Mac 12 破解 - [数据库可视化工具,亲测完美破解]
一.下面的公钥和私钥暂时存到文本编辑器中 公钥: -----BEGIN PUBLIC KEY-----MIIBITANBgkqhkiG9w0BAQEFAAOCAQ4AMIIBCQKCAQB8vXG0I ...
- 使用C# (.NET Core) 实现迭代器设计模式 (Iterator Pattern)
本文的概念来自深入浅出设计模式一书 项目需求 有两个饭店合并了, 它们各自有自己的菜单. 饭店合并之后要保留这两份菜单. 这两个菜单是这样的: 菜单项MenuItem的代码是这样的: 最初我们是这样设 ...
- PHP取得json前面有乱码(去除文件头部BOM)
curl请求接口时,返回结果如下: {} 想把json转换成数组或者对象,但是用json_decode返回是空的,然后用var_dump打印了一下返回结果,发现结果如下: ) 发现前面多了两个字符,因 ...
- 全网最详细的基于Ubuntu14.04/16.04 + Anaconda2 / Anaconda3 + Python2.7/3.4/3.5/3.6安装Tensorflow详细步骤(图文)(博主推荐)
不多说,直接上干货! 前言 建议参照最新的tensorflow安装步骤(Linux,官方网站经常访问不是很稳定,所以给了一个github的地址): https://github.com ...
- 剑指offer-学习笔记
前言:18/06/06开始学习,每个程序都会用C写一遍,因书中用C++举例,也会换种思路写,供学习和参考!!!很推荐这本书很不错,准备入手,一般不买实体书,都用电子书,因一般都看一遍,但这本会看很多遍 ...
- C++—程序的内存分区
代码区 程序被操作系统加载到内存时,所有可执行的代码被加载到代码区,也叫代码段,存储程序的代码指令.程序运行时,这段区域数据不可被修改只可以被执行. 静态区 程序中的静态变量.全局变量存放在此 ...
- Python从入门到精通系列文章总目录
Python最新全套课程(8月中旬开的课),共四个月.所有课件,项目源码,课后习题和答案都包括在内. 包括:Python实战项目引入.Python基础.爬虫基础.爬虫库.Scrapy爬虫框架.动态页面 ...
- python的dir()和__dict__属性的区别
只要是有属性的数据对象(不一定是面向对象的对象实例,而是指具有数据类型的数据对象),都可以通过__dict__和dir()来显示数据对象的相关属性. __dict__可以看作是数据对象的名称空间,所以 ...