Kotlin腾讯课堂(第1节-第27节)-Eclipse篇

本文详细介绍Kotlin语言的基础语法,包括变量定义、数据类型、流程控制、集合操作及函数编写。通过具体代码实例,展示如何在Eclipse环境中进行Kotlin开发,涵盖变量声明、循环结构、函数定义、异常处理等核心概念。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

mac在eclipse中的快捷键

1.格式化代码:command+shift+f
2.提示代码: option+/

前言:内容来源

在这里插入图片描述

视频第三节-搭建环境

  1. Eclipse下载地址:点我访问
  2. JDK下载:Eclispe自带
  3. 在Eclipse中添加Kotlin插件,如图在这里插入图片描述

视频第四节-编写Hello world

代码如下:(注意在Eclipse创建Kotlin文件时,选择创建一个Kotlin File,而不是Kotlin Class)
在这里插入图片描述

视频第七节-变量

  1. Var 用来定义变量,可以修改
  2. Varl用来定义常量,不可修改

截止视频第27节,所敲代码如下

import java.util.TreeMap
import java.lang.Exception
import java.math.BigDecimal

val pi = 3.1415f

fun main(args: Array<String>) {
	println("hello world")
	var a: Int = 0b11//0b表示二进制
	println("a==" + a)
	var b: Boolean = true
	println("" + b)
	println("sayHello==" + sayHello("Hello"))
	println(changeContent("博物馆"))
	var c = 8
	var d = 1
	println("比较${c}${d}的最大值为:${checkBig(c, d)}")//"${}"代表字符串模版,占位符,有时候可以简写为$
	var e = "Tom"
	var f = "tom"
	println(e == f)//Kotlin中的“==”和“equals”用法一样,比较的是内容是否一致,java中的“==”则比较的是字符串的地址值
	println(e.equals(f))
	println(e.equals(f, true))//true代表不区分大小写
	println(checkEmpty("水"))
	println(checkEmpty(null))//当我们把参数传为null值时,必须在方法上的参数数据类型后面加上“?”,代表参数可以为空,不然直接编译报错
	println(getGrade(100))
	println(compareGrade(100))//when和switch都可以用于int型变量的判断,但when更强大,它可以是变量,常量,返回数值的表达式以及返回Boolean值的表达式
	var g = 1..100// ".."代表1从100的区间,包含1和100
	var g1 = 0;
	for (gg in g) {// for in 代表循环1到100这个区间
		print("$gg,")
		g1 = gg + g1;//计算1到100的总和
	}
	println("")
	println("1到100的总和为:" + g1)
	var g2 = 1 until 10//until 表示[1,10)区间,前开后闭
	for (gg in g2) {
		print("" + gg + ",")
	}
	println("")
	for (gg in g2 step 3) {//step代表每次间隔3个数字
		print("" + gg + ",")
	}
	println("")
	var g3 = g2.reversed()//把g2的1-9数字排练改为倒叙排列9-1,并且赋值给g3
	for (gg in g3) {//step代表每次间隔3个数字
		print("" + gg + ",")
	}
	println("")
	println("1-9总共有${g3.count()}个数字")
//	var list = ArrayList<String>()
//	list.add("1")
//	list.add("2")
//	list.add("3")
	var list = listOf("1", "2", "3")//有以上两种List集合的写法
	for (l in list) {
		print("" + l + ",")
	}
	println("")
	for ((i, e) in list.withIndex()) {//表示根据下标获取集合内容
		println("下标为:" + i + " 对应的内容为:" + e)
	}
	var map = TreeMap<String, String>()//创建map集合使用TreeMap
	map["name"] = "ls"
	println(map["name"])
	var h = 3
	var i = 9
//	var hi = lamda(h,i)//函数方法体的写法
//	println(""+hi) 
//	var hi = {h:Int,i:Int ->h+i}//函数表达式的写法一
	var hi: (Int, Int) -> Int = { h, i -> h + i }//函数表达式的写法二
	println(hi(h, i))
	println(getLength(pi, 5.0f))//默认传参
	println(getLength(cicle = 5.0f))//具名传参
	var j = "66"
	var k = 66
	j = k.toString()//把Int转为String 使用 toString
	k = j.toInt()//把String转为Int 使用 toInt
//	var m = "请输入第一个数字:"
//	println(m)
//	var mm = readLine()//获取到输入的内容
//	var n = "请输入第二个数字:"
//	println(n)
//	var nn = readLine()
	/**
	? 的用法:
	1.用来定义变量时,指这个变量可以为null
	2.用来调用变量时,指这个变量如果为null 就会不执行这段代码,变量直接等于null
	!! 的用法:
	1.它指这个变量若是为null,程序会显示报错信息
	参考网址:https://www.jianshu.com/p/51b2e5aa3dd8Ï
	 **/
//	try {//捕获异常
//		var mmInt = mm!!.toInt()
//		var nnInt = nn!!.toInt()
//		println("输入总和为:" + (mmInt + nnInt))
//	} catch (e: Exception) {
//		println("输入有误,请输入正确的输数字")
//	}
	var o = BigDecimal("4")//计算递归 4*3*2*1 4的递归就是4*3的递归 依次类推...
	//println("result==" + getRepeat(o))//递归写法
	println("result==" + getRepeat(o, BigDecimal.ONE))//尾递归写法
}

/**
递归写法1
这样的写法如果递归的数值过大,就会导致栈内存溢出,这时就需要尾递归写法
 **/
//fun getRepeat(num:BigDecimal):BigDecimal{
//	if(num == BigDecimal.ONE){
//		return BigDecimal.ONE
//	}else{
//		return num+getRepeat(num-BigDecimal.ONE)
//	}
//}

/**
递归写法2-尾递归写法
1.添加tailrec关键字
2.添加结果参数result
3.修改运算函数
 **/
tailrec fun getRepeat(num: BigDecimal, result: BigDecimal): BigDecimal {
	println("现在计算的数字为:"+num+" 该数字计算的结果为:"+result)
	if (num == BigDecimal.ONE) {
		return result
	} else {
		return getRepeat(num - BigDecimal.ONE, num * result)
	}
}


fun getLength(p: Float = pi, cicle: Float): Float {
	return 2 * p * cicle
}

/**
函数的写法1
fun lamda(h:Int,i:Int):Int{
return h+i
}
 **/

/**
函数的写法2
1,去除{}
2, 去除 return,改为 =
 **/
fun lamda(h: Int, i: Int): Int = h + i


fun sayHello(name: String): String {
	return name;
}

fun changeContent(place: String): String {
	return "今天去${place}玩了${place.length}小时,我很高兴";
}


fun checkBig(a: Int, b: Int): Int {
	if (a > b) return a else return b
}


fun checkEmpty(a: String?): String {
	return "热" + a
}

fun getGrade(a: Int): String {
	when (a) {
		100 -> return "满分"
		90 -> return "优秀"
		60 -> return "及格"
		else -> return "再接再厉"
	}

}

fun compareGrade(a: Int): String {
	when {
		a == 100 -> return "满分"
		a > 90 && a < 100 -> return "优秀"
		a > 60 && a < 90 -> return "及格"
		else -> return "再接再厉"
	}

}









评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值