kotlin变量基础
kotlin变量与输出
这里看一下在Kotlin中的变量是如何定义的?
编译运行:
对比下我们常用的JAVA语言,定义上的区别:
1、Kotlin变量是统一以var开头,而不区分具体类型,而Java在定义变量是就要确定数据类型,对应这句话也就是:String name = "cexo"。
2、Kotlin在写完一句代码之后不用以";"做为该句的结束,而Java是必须以";"结束。
既然是变量,下面去改变其变量的值,如下:
编译运行:
想一个问题:定义变量时木有明确区分数据类型,而都是用var关键字,那是不是该变量可以接受任何数据类型呢?
看错误提示:
可见类型不匹配,那我们的猜想不成立,所以回过头来看一下Kotlin变量定义它的深层次的含义:
那Kotlin常见的数据类型下面列举一下:
Kotlin变量和常量&类型推断
对于类型推断其实在上面已经接触到了,下面再来集中学习一下,直接通过代码来阐述:
对于上面这代码木有啥可解释滴,肯定是正常可用的,那看下面:
报错了,报啥错呢,看提示:
而看一下int类型的取值范围:
而对于"var i = 18"为啥会认为该变量是整型类型呢?那就是Kotlin一个很智能也很有特点的地方:智能类型推断,会根据声明变量的时候自动根据传的值来推断出该变量的类型,下面继续修改代码:
以此类推,像这样:
上面的错比较好理解了,不多解释。
但是!!对于这个Koltin编译器自动推断变量类型智能是智能,是不是觉得可读性有些损失,不能明确知道变量的类型,有木有一种可以明确指定类型的方法呢?当然Kotlin为我们考虑到了,如下显示指定类型:
下面再来修改代码:
从提示中可以发现,变量是必须要有一个类型声明或是被初始化才行,而初始化这种情况上面已经演示了,下面来修改代码让其可以编译通过:
有了变量,下面再来看一下常量是如何弄的,看代码:
变量可以修改没啥可解释的,但是对于车牌号码当声明之后不想被更改,那如何搞呢?
Kotlin变量取值范围
用代码去验证一下上面说的数据类型的取值范围:
编译运行:
同理看一下Long类型:
编译运行:
最后再看一个细节,对于int变量如何用二进制去赋值呢?
编译运行:
kotlin变量基础的更多相关文章
- 【转载】salesforce 零基础开发入门学习(二)变量基础知识,集合,表达式,流程控制语句
salesforce 零基础开发入门学习(二)变量基础知识,集合,表达式,流程控制语句 salesforce如果简单的说可以大概分成两个部分:Apex,VisualForce Page. 其中Apex ...
- SHELL脚本--变量(基础)
bash&shell系列文章:http://www.cnblogs.com/f-ck-need-u/p/7048359.html 变量存在于内存中.假设变量str,设置或修改变量属性时,不带$ ...
- kotlin 变量声明
Kotlin 是强类型的语言,Kotlin 要求所有的变量必须先声明.后使用,声明变量时必须显示或隐式指定变量的类型(隐式的是指,声明的时候同时初始化,这样编译的时候就可以推断出该变量的类型了,Jav ...
- Nodejs第一天-{Nodejs基础 深刻理解浏览器 环境变量 基础语法}
Nodejs第一天 1.什么是Nodejs Nodejs是一个可以运行(解析)ECMAScript的环境; ECMAScript是规定了一些列的语法 ,这些语法想要解析的执行就需要放在某个环境 ...
- Kotlin 变量和常量的声明(var和val)
Kotlin有着非常非常智能化的声明变量方式.叫做类型推断 声明变量要使用关键字var和val. var声明方式第一种(自动推断): var nub=1231://自动定义整数型 使用分号 var c ...
- python大纲+变量基础详解
1.python的历史 python2和python3的区别 2004 Django框架的诞生 2.python是编程语言 python 是解释型语言 3.python的种类 cpyt ...
- 小白学 Python(4):变量基础操作
人生苦短,我选Python 引言 前文传送门 小白学 Python(1):开篇 小白学 Python(2):基础数据类型(上) 小白学 Python(3):基础数据类型(下) 前面的文章中,我们介绍了 ...
- salesforce 零基础开发入门学习(二)变量基础知识,集合,表达式,流程控制语句
salesforce如果简单的说可以大概分成两个部分:Apex,VisualForce Page. 其中Apex语言和java很多的语法类似,今天总结的是一些简单的Apex的变量等知识. 有如下几种常 ...
- Swift学习(四)常量&变量&基础数据类型
常量和变量 常量: 使用let关键词来声明一个常量 所指向的是一个特定类型的值,如数字10或者字符”hello”,常量的值是不能够被二次修改的 编程时使用常量能够让代码看起来更加安全和简洁! let ...
随机推荐
- HelloCube:IJobForEach
此示例演示了基于作业的ECS系统,该系统可旋转一对立方体. 它显示了什么? 此示例基于ForEach示例构建,并说明如何在多线程作业中执行相同的工作,而不是在主线程上执行相同的工作. 与前面的示例一样 ...
- HOG算法总结
1.HOG特征提取所针对的图像的尺寸是固定的.输入的图像应首先resize到这个尺寸. 2.尺寸的划分3个等级:window,block,cell window即输入的需要提取特征的图片大小.然后将w ...
- 【VS开发】QueryPerformanceFrequency与QueryPerformanceCounter的使用
LARGE_INTEGER tima,timb; QueryPerformanceCounter(&tima); 在 Windows Server 2003 和 WindowsXP 中使用 Q ...
- Reactor系列(八)concatMap有序映射
#java#reactor#comcatMap# 有序映射 视频讲解:https://www.bilibili.com/video/av79705356/ FluxMonoTestCase.java ...
- EMR-LDAP配置
usersync是负责在配置policy的时候可选用户有ldap里的用户,admin是负责登录webui的 https://cwiki.apache.org/confluence/display/RA ...
- Scrapy setup.py 各参数详解
实际上Scrapyd的打包工具用到了setuptools,而打包参数主要是在setuptools里面的setup函数中设置. ************************************* ...
- 【AtCoder】AGC034
AGC034 刷了那么久AtCoder我发现自己还是只会ABCE(手动再见 A - Kenken Race 大意是一个横列,每个点可以跳一步或者跳两步,每个格子是空地或者石头,要求每一步不能走到石头或 ...
- vue去掉链接中的#
在router.js中修改, const router = new VueRouter({ mode: 'history', routes: [...] })
- LC 349. Intersection of Two Arrays
题目描述 Given two arrays, write a function to compute their intersection. Example 1: Input: nums1 = [1, ...
- Spring Boot环境的安装
Eclipse 使用springboot框架 环境的安装 1.下载java1.8 ,安装并配置环境变量 环境变量增加java 的安装目录到环境变量中path中增加 %JAVA_HOME%/bin增加变 ...