Kotlin基础教程之函数定义与变量声明
Kotlin基础教程之函数定义与变量声明
可以看到,函数定义就是
<访问控制符> <函数名> <参数列表> <:返回类型(不写就是无返回类型)> {
函数体
}
单语句函数可以简写,比如add函数和add1函数效果是一样的
变量定义
var <标识符> : <类型> = <初始化值>
常量定义
val <标识符> : <类型> = <初始化值>
常量与变量都可以没有初始化值,但是在引用前必须初始化
编译器支持自动类型判断,即声明时可以不指定类型,由编译器判断
运行结果:
感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!
相关推荐
-
Kotlin基础教程之控制流(顺序,分支,循环)
Kotlin的控制流与其他语言一样,顺序,分支,循环 顺序语句就不多说,分支有两种,if-else和when(类似于Java中的switch) if语句: 运行结果: Java中的case语句不仅支持整数值,最新的JVM还支持字符串,Kotlin的when语句更是强大,开关变量甚至可以是Double,Array等各种类型,换句话说when语句比switch语句强大,与if-else语句的能力已经不相上下: 运行结果: while和do-while语句 与Java没有太大区别 运行结果: for循
-
Kotlin 基础教程之反射
Kotlin 基础教程之反射 概述 反射是语言与库中的一组功能, 可以在运行时刻获取程序本身的信息.在Kotlin中,不仅可以通过发射获取类的信息,同时可以获取函数和属性的信息.也就是说,在在运行时刻得到一个函数或属性的名称和数据类型) 可以通过简单的函数式, 或交互式的编程方式实现. 在Java平台上, 使用反射功能所需要的运行时组件是作为一个单独的JAR文件发布的( kotlinreflect.jar). 这是为了对那些不使用反射功能的应用程序, 减少其运行库的大小. 如果你需要使用反射,
-
Kotlin基础教程之面向对象
Kotlin 面向对象 这几天一直在准备考试,实在没有时间,已经过去了这么久,终于要到面向对象了! 先看看Kotlin中的类长什么样吧. 可以看到Kotlin中的类还是很普通的,大多与Java相似,比较特殊的有: 每一个构造函数都必须为每一个成员变量赋予初值. primary constructor,这个构造函数的头部紧跟在类名之后,函数体却在类中,是由init关键字包含的一个代码块,这种函数头和函数体分开的写法还是很少有的,其实这两个部分会被整合成一个构造函数,使用jd-gui反编译class
-
Kotlin 泛型详解及简单实例
Kotlin 泛型详解 概述 一般类和函数,只能使用具体的类型:要么是基本类型,要么是自定义的类.如果要编写可以应用于多种类型的代码,这种刻板的约束对代码的限制很大.而OOP的多态采用了一种泛化的机制,在SE 5种,Java引用了泛型.泛型,即"参数化类型".一提到参数,最熟悉的就是定义方法时有形参,然后调用此方法时传递实参.那么参数化类型怎么理解呢?顾名思义,就是将类型由原来的具体的类型参数化,类似于方法中的变量参数,此时类型也定义成参数形式(可以称之为类型形参),然后在使用/调用
-
Kotlin 基础教程之异常
Kotlin 基础教程之异常 概述 在Kotlin-null的处理里提到的NPE,它就是一个异常.而,异常是程序运行过程中出现的错误.在Kotlin中,所有的异常都继承于Throwable.对于每一个异常而言,它不仅仅包括异常的信息,还可以选择性包括异常的原因,而其原因也是一个异常的实例. 抛出异常 使用 throw表达式抛出异常: throw MyException("Hi There!") 捕获异常 如果在函数内部抛出了异常(或者在函数内部调用的其他函数抛出了异常),这个函数将在抛
-
Kotlin 内联函数详解及实例
Kotlin 内联函数详解及实例 概述 在说内联函数之前,先说说函数的调用过程. 调用某个函数实际上将程序执行顺序转移到该函数所存放在内存中某个地址,将函数的程序内容执行完后,再返回到转去执行该函数前的地方.这种转移操作要求在转去前要保护现场并记忆执行的地址,转回后先要恢复现场,并按原来保存地址继续执行.也就是通常说的压栈和出栈.因此,函数调用要有一定的时间和空间方面的开销.那么对于那些函数体代码不是很大,又频繁调用的函数来说,这个时间和空间的消耗会很大. 那怎么解决这个性能消耗问题呢,这个时候
-
Kotlin编写Android适配器Adapter
说好今天要写一个使用Kotlin写Adapter的列子,我想了半天也没有组织好语言,直接上代码吧,有一定Android基础的小伙伴肯定是能看的懂的 package com.example.administrator.kotlintest import android.content.Context import android.view.LayoutInflater import android.view.View import android.view.ViewGroup import and
-
Kotlin this详解及实例
Kotlin this详解及实例 为了表示当前函数的接收者(receiver), 们使用this表达式: 在类的成员函数中,this指向这个类的当前对象实例: 在扩展函数中,或带接收者的函数字面值(function literal) 中, this 代表调用函数时, 在点号左侧传递的接收者参数: 如果this没有限定符,那么它指向包含当前代码的最内层范围.如果想要指向其他范围内的this,需要使用标签限定符. 带限定符的this 为了访问更外层范围(比如 类, 或 扩展函数, 或有标签的 带接受
-
Kotlin基础教程之函数定义与变量声明
Kotlin基础教程之函数定义与变量声明 可以看到,函数定义就是 <访问控制符> <函数名> <参数列表> <:返回类型(不写就是无返回类型)> { 函数体 } 单语句函数可以简写,比如add函数和add1函数效果是一样的 变量定义 var <标识符> : <类型> = <初始化值> 常量定义 val <标识符> : <类型> = <初始化值> 常量与变量都可以没有初始化值,但是在引用前
-
python基础教程之基本数据类型和变量声明介绍
变量不需要声明 Python的变量不需要声明,你可以直接输入: 复制代码 代码如下: >>>a = 10 那么你的内存里就有了一个变量a, 它的值是10,它的类型是integer (整数). 在此之前你不需要做什么特别的声明,而数据类型是Python自动决定的. 复制代码 代码如下: >>>print a >>>print type(a) 那么会有如下输出: 复制代码 代码如下: 10 <type 'int'> 这里,我们学到一个内置函数t
-
Kotlin 基础教程之类、对象、接口
Kotlin 基础教程之类.对象.接口 Kotlin中类.接口相关概念与Java一样,包括类名.属性.方法.继承等,如下示例: interface A { fun bar() fun foo() { // 可选方法体 } } class Child: A { override fun bar() { // todo } override fun foo() { super.foo() } } class 构造器 Kotlin 中的类可以有一个 主构造器, 以及一个或多个次构造器, 主构造器是类头
-
Kotlin基础教程之数据类型
Kotlin基础教程之数据类型 一切都是对象. 在Kotlin中一切都是对象.Kotlin有一些基本类型Boolean,Byte,Shot,Int,Long,Float,Double 在Kotlin中没有原始类型,以上这些类型都是对象,比如 运行结果如下 Kotlin支持16进制字面值,二进制字面值和科学记数法,官方文档中没有提到8进制 所有基本的几个数据类型不会进行显式类型转换,这一点尤为重要!那么如何进行转换呢?如下: 可以使用toLong,toInt,toShort,toChar等函数进行
-
Kotlin基础教程之操作符与操作符重载
Kotlin基础教程之操作符与操作符重载 Kotlin操作符的使用方法与其他语言差不多,最大的特点就在于infix function call(事实上infix function call并不是操作符的特性,而是函数的特性)和操作符重载. 可以看到在Kotlin中大部分的操作符都与一个函数相对应,之所以这样做,大概是为了进行操作符重载. Kotlin官方文档中强调"=赋值"操作在Kotlin中不是操作符,换句话说类似于x = y = z这样的连续赋值并不被允许(甚至赋值操作也不能和常规
-
kotlin基础教程之类和继承
kotlin基础教程之类和继承 类声明 使用class关键字声明类,查看其声明格式: : modifiers ("class" | "interface") SimpleName typeParameters? primaryConstructor? (":" annotations delegationSpecifier{","})? typeConstraints (classBody? | enumClassBody)
-
Kotlin学习教程之函数的默认参数
前言 在Java中,为函数的参数添加默认值是不被允许的,这是为了防止默认参数与函数重载同时使用时二义性的问题,考虑下面的例子: void func(p1: String, p2: String, p3: String = "default") { // do something } void func(String p1, String p2) { // do something } 假设上面的代码是可以编译通过的,那么当调用func("p1","p2
-
汇编基础教程段的定义应用详解
目录 段 种类 代码段 数据段 DS和[address] 栈段 栈 操作方式 8086CPU提供入栈和出栈指令 栈顶超界的问题 push.pop指令 PUSH(入栈) POP(出栈) 栈段定义 思考 访问 段前缀 场景1 场景2 段 将一段内存定义为一个段,用一个段地址指示段,用偏移地址访问段内的单元 种类 代码段 定义 对于8086PC机,在编程时,可以根据需要,将一组内存单元定义为一个段. 可以将长度为 N( N≤64KB )的一组代码,存在一组地址连续.起始地址为 16的倍数的内存单元中,
随机推荐
- VBS教程:函数-FormatPercent 函数
- 关于Java反射机制 你需要知道的事情
- iOS开发之手势识别
- ThinkPHP中使用Ueditor富文本编辑器
- JS中的Replace方法使用经验分享
- 详解C语言结构体中的函数指针
- vue params、query传参使用详解
- 浅谈js数组和splice的用法
- node.js中的buffer.Buffer.isEncoding方法使用说明
- 实例讲解C++编程中lambda表达式的使用
- python中正则的使用指南
- MySQL字符串函数详解(推荐)
- 学习JavaScript设计模式(代理模式)
- jquery maxlength使用说明
- 如何提高数据访问速度
- node.js实现多图片上传实例
- 经验:实战无线网络的组建
- 基于JVM 调优的技巧总结分析
- 详解vue项目的构建,打包,发布全过程
- Linux查看进程的所有信息的方法示例