我们还是用Hello World的例子展开,代码如下:

package com.my.examplefun main() {println("Hello World")
}

package(包)

所有的文件,通常以package声明开头,后面跟的是包名(本例中的com.my.example)。包名就类似于我们的地址,XX市.XX区.XX街道,每个人都属于某个地址,当然如果是黑户,没有地址怎么办呢,Kotlin也允许这样的情况存在,没有指明包的,该文件的内容属于无名字的默认包。
包名需要遵守下面的规范:
a. 为了尽量避免包名重复,通常是域名倒着写
b. 包名必须小写,不能有下划线
c. 通常不鼓励使用多个词,那有些特殊情况,必须要使用多个词,比如您就是不写北京市,非要写京津冀,能咋地,客官您息怒,可以可以,确实不能咋地,如果非要这么做,推荐使用驼峰风格(com.my.myExample)

为什么需要有个包名,主要是为了文件/方法/属性/类的可见性,这个在引入三方库的时候会比较明显,比如以北京这个维度,可能叫小明的同学有很多,但是细化到街道的维度可能就一个了

import

使用任何方法,属性,类等等,都需要import相应的包
在println上面,点击ctrl+鼠标左键,会进到Console.kt文件,我们翻到最上面,会发现,package kotlin.io,说明我们引用的println函数属于kotlin.io包,那为什么没有import呢,Kotlin平台,默认会导入kotlin.,kotlin.io.,kotlin.text.*等等,不需要再显示import

main

Kotlin的入口点是main函数,这个是百米赛道的起点,等你准备就绪,只等系统给你一个启动的信号。

变量

Kotlin 使用两个不同的关键字(即 valvar)来声明变量

  • val 用于值从不更改的变量。使用 val 声明的变量无法重新赋值
  • var 用于值可以更改的变量

有一天我们突发奇想,盖一座房子吧:

val WELCOME = "Let's build a house!"

然后需要有一块地,宽20米,不能变,

val width : Int = 20

长呢,暂定25米,因为没想好,后面可能会变

var length : Int = 25

细心的小伙伴,发现了一些问题:

  • WELCOME 为什么大写?Kotlin要求,对于顶层常量(或const变量),命名要使用全大写,可以包含下划线WELCOME_TO_MARKET
  • WELCOME没有类型,这里涉及到Kotlin的一个机制——类型推断,“Let’s build a house!”很明显是String类型,在赋初值时,编译器推断出WELCOME也为String类型,于是可以省略类型声明,同样的下面两个变量也可以省略类型
  • 局部变量需要使用小写命名,遵循驼峰规则

更多关于变量的知识点,会在后续篇章,不断深入,此篇只是入门。

fun

Kotlin中,使用fun关键字来声明函数,函数呢就是一段用于实现某个功能的代码。,函数名称须使用有意义的不宜过长。
那接着我们上面的例子,算一下这个房子需要占地多少,于是增加一个函数,实现的功能是长*宽=面积:

fun area(length: Int, width: Int): Int {return length * width
}

函数有几个部分:fun关键字,函数名(area)参数(length和width),返回值(最后的Int),函数体(return length* width;)
为了培养大家的良好习惯,尽量遵守以下规则:
a.函数名称使用有意义的词组,尽量避免a()b()这样毫无意义的名称,不宜过长
b.首字母小写,多个词组使用驼峰风格,比如(weAreFamily)
c.参数使用name:type的表示方法,多个参数使用“,”隔开

注释

如果把程序比作房子,注释就是构造图或者说明书,对代码功能没有任何实际影响,但是可以增加可读性,别人可以更方便的了解你的代码。
Kotlin有一套编写代码文档的语言,成为KDoc,我们在此不展开讲,感兴趣的同学,可以仔细阅读编写Kotlin代码文档

对于比较长的注释以/*开头,以/结尾,单独一行

/***This is our first kotlin application*Copyright ...* @author: XXX*/

简短的注释/*/可以写在一行

/** return area of land, using [length] and [width] */

当然,还可以更简单

    var length : Int = 25//land length

Kotlin有提供丰富的标签,比如:
@param <名称>
用于函数的值参数或者类、属性或函数的类型参数
等等等等。。。

最后附上本章的代码:

/***This is our first kotlin application* Copyright ...* @author: XXX*/package com.my.exampleval WELCOME = "Let's build a house!"/** return area of land, using [length] and [width] */
fun area(length: Int, width: Int): Int {return length * width
}fun main() {println(WELCOME)var length = 25//land lengthval width = 20println("The area of land is " + area(length, width))
}

运行一下
大家应该都发现了,Kotlin语言的最大特性之一:
代码末尾不需要使用“;”结束

返回目录

Kotlin第一课Hello World —— Package、main、fun、import、变量、注释相关推荐

  1. 计算机课进制笔记,初学Python课程笔记-第一课(计算机基本概念+进制+环境变量)...

    这是我第一次写博客,简单地聊聊当下的感受.其实,早在大学期间就有过把自己所学的一些知识点记录在某个平台,可供日后自己复习.只是本人并非计算机专业出身,平时写代码写得不是不多.直到毕业参与工作,从事软件 ...

  2. opencv 学习第一课 图像读取、显示、写入 代码注释版 保证你每一行都能读懂

    import numpy as np import cv2 as cvimg = cv.imread('cat.jpg',0) #读入图片 cv.imshow('image1',img) #显示图片 ...

  3. 第一课:初识Java语言

    第一课:初识Java语言 一.了解Java的历史由来. 1.为什么学习Java编程语言. (1)首先要了解编程语言的流行趋势,Tiobe.PYPL排行榜. (2)在这些排行榜上,Java语言的流行程度 ...

  4. kotlin 第一个程序_Kotlin程序添加两个矩阵

    kotlin 第一个程序 Given two matrices, we have to add them. 给定两个矩阵,我们必须将它们相加. Example: 例: Input: matrix 1: ...

  5. kotlin 第一个程序_Kotlin程序减去两个矩阵

    kotlin 第一个程序 Given two matrices, we have to subtract them. 给定两个矩阵,我们必须将它们相减. Example: 例: Input: matr ...

  6. java面向对象第一课,定义类,模拟人的行为:吃饭工作休息

    java面向对象第一课,定义类,模拟人的行为:吃饭工作休息 /*** 定义类,模拟人的行为:吃饭工作休息*/ public class Person {//静态特征:成员变量 属性 fieldStri ...

  7. 第一课 大数据技术之Fink1.13的实战学习-部署使用和基础概念

    第一课 大数据技术之Fink1.13的实战学习 文章目录 第一课 大数据技术之Fink1.13的实战学习 第一节 Fink介绍 1.1 Flink介绍背景 1.2 Flink 的应用场景 1.3 流式 ...

  8. 爬虫小白第一课、从安装python到写出第一个爬虫程序、Pycharm安装详解

    本文原文链接 ↑↑↑ 目录 1什么是python 2怎么安装python 3安装python编辑器 4"写"你的第一个爬虫 5小结 python爬虫现在挺火,一方面全民学pytho ...

  9. Java第一课学习,开启学习之旅!

    一个程序员的第一课都是用程序编写"Hello,world!",当然我也不例外! public class HelloWorld{public static void main(St ...

最新文章

  1. 【Pandas库】(4) 索引操作--重新生成索引
  2. 域名跳转301-LAMP环境搭建
  3. Petrozavodsk Summer-2016. Ural FU Dandelion Contest
  4. python对excel某一列求和-96、python操作excel求和
  5. 【转】三分钟了解Fiori背后的设计理念
  6. boost::geometry::disjoint用法的测试程序
  7. 分布式事务:RocketMQ实现分布式事务原理
  8. 输出该数二进制表示中1的个数。求取十进制数字元素1的个数 (3种方法)
  9. Ubuntu 下 svn 服务器的安装配置
  10. 如何卸载密码保护的Symantec Endpoint Protection
  11. C++ error C3867 请使用 ““ 来创建指向成员的指针
  12. visio 2013安装使用
  13. matlab中采样点是什么意思,各种采样含义
  14. 特征值、特征向量及相似矩阵
  15. iTOP-4418开发板RS85模块ioctl操作时间间隔修改
  16. gprs模块与服务器通信协议,gprs模块与服务器通信原理分析
  17. 【Node.js】关于Node.js接口的详解和案例--restful风格接口。案例:添加商品接口,添加员工接口,删除员工接口
  18. iOS开发 - 给Label加下划线、中划线
  19. C++/Qt:最小外接矩形
  20. chage(charger)

热门文章

  1. List集合 查询重复数据,查询重复次数
  2. 时间序列分析预测实战之指数平滑法
  3. linux的磁盘文件系统特点总结
  4. 架构师的必备素质和成长途径
  5. iOS 的看门狗机制
  6. sql查询今年的12个月的统计数据
  7. 服务器生成js文件,Next.js 静态生成和服务器端渲染
  8. 高清摄像头MIPI CSI2接口浅解【转】
  9. D3 JS study notes
  10. 未来5年内, UWB技术或将成为室内定位的主流技术!