lamada编程
package com.example.Chapter2
//1、常见数据结构
//1)列表:有序集合,listof()---不可变有序列表,mutablelistof()---可变有序列表
fun listLearn(){
println("list数据结构学习")
val list1 = listOf<通达信dll接口规范,string>("a","b","c")
for (l in list1){
println(l)
}
val list2 = mutableListOf<通达信dll接口规范,string>("a","b","c")
list2.add("d")
for (l2 in list2){
println(l2)
}
}
//2)集合:无序集合,setof()---不可变集合,mutablesetof()---可变集合
fun setLearn(){
println("set数据结构学习")
val set1 = setOf<String>("a","b","c")
for (s in set1){
println(s)
}
val set2 = mutableSetOf<String>("a","b","c")
set2.add("d")
for (s2 in set2){
println(s2)
}
}
//3)字典:无序字典,mapof()---不可变集合,mutablemapof()---可变集合
fun mapLearn(){
println("map数据结构学习")
val map1 = mapOf<String,Int>("a" to 1,"b" to 2,"c" to 3)
for (m in map1){
println(m)
}
val map2 = mutableMapOf<String,Int>("a" to 1,"b" to 2,"c" to 3)
map2.put("d", 4)
for (m2 in map2){
println(m2)
}
}
//2、集合式的API
//1)maxby()---取一个集合的最大值
//2)map()---将集合每一个元素按照规则映射成另一个元素
//3)filter()---将集合中符合条件的元素筛选出来
//4)any()---判断集合中是否至少存在一个符合条件的元素,是返回true,否返回false
//5)all()---判断集合中是否所有元素都符合条件,是返回true,否返回false
fun apiLearn(){
val list3 = listOf<String>("ab","bcs","cdff")
val maxLength = list3.maxBy { l3->l3.length }
val maxLength2 = list3.maxBy { it.length } //只有一个参数,所以可以用It关键字来代替
println("maxLength:"+maxLength)
println("maxLength2:"+maxLength2)
val mapEle = list3.map { l3->l3.uppercase() }
val mapEle2 = list3.map { it.uppercase() }
println("mapEle:"+mapEle)
println("mapEle2:"+mapEle2)
val filterEle = list3.filter { l3 -> l3.length <= 3 }
val filterEle2 = list3.filter { it.length <= 3 }
println("filterEle:"+filterEle)
println("filterEle2:"+filterEle2)
val anyEle = list3.any { l3 -> l3.length > 5 }
val anyEle2 = list3.any { l3 -> l3.length < 5 }
val anyEle3 = list3.any { it.length < 5 }
println("anyEle:"+anyEle)
println("anyEle2:"+anyEle2)
println("anyEle3:"+anyEle3)
val allEle = list3.all { l3 -> l3.length > 5 }
val allEle2 = list3.all { l3 -> l3.length < 5 }
val allEle3 = list3.all { it.length < 5 }
println("allEle:"+allEle)
println("allEle2:"+allEle2)
println("allEle3:"+allEle3)
}
fun main(){
//1、数据结构学习
listLearn()
setLearn()
mapLearn()
//2、集合式API
apiLearn()
}
字符串内嵌表达式、函数参数默认值
package com.example.Chapter2
//通过${}来内嵌变量到一个完整的字符串句子中,只有一个变量时,大括号可以删除
fun stringPad(){
val num = 2
val string = "null"
println("test ${num} $string")
}
fun main(){
stringPad()
}
package com.example.Chapter2
fun functionParams(num:Int = 2,string:String){
println("$num $string")
}
fun main(){
functionParams(1,"iii")
functionParams(string = "hello")
}
数据类&单例类
类的继承、构造、接口
package com.example.Chapter2
//-----------1、类的构造
// 在kotlin钟类默认是不可继承的
//构造一个学生类
open class Stuedent {
//定义学生的属性
var name:String = ""
var age:Int = 0
var weight:Int = 0
var classNum:Int = 0
//定义学生的方法
fun basicMess(){
println(name+" is "+age+" years old,his weight is" + weight + " kg and his classroom is " + classNum)
}
}
//实例化类,即构造一个学生
fun student(name:String,age:Int,weight:Int,classNum:Int){
//实例化类,即构造一个学生
val s1 = Stuedent()
//给类属性赋值,并调用类方法
s1.name = name
s1.age = age
s1.classNum = weight
s1.weight = classNum
s1.basicMess()
}
//---------2、继承,减少代码重复编写,在共同属性的基础上,添加不同子类的差异性,如人都有年龄身高体重,但是不同职业的人有不同的岗位
// 在kotlin钟类默认是不可继承的,需要添加关键字open来定义来是可继承的
//构造大学生类,继承学生类
class collegeStudent(var subject:String,var school:String): Stuedent(){
//通过constructor关键字来实现不同大学生类的参数组合
constructor(name: String,age: Int):this("语文","上海理工大学"){} //组合1:通过this关键字来调用当前类的参数
constructor(name: String):this("英语","上海大学"){}
constructor():this("",""){}
fun printI(){
println(subject + school)
}
}
//实例化大学生类
fun colleageStu(){
val c1 = collegeStudent() //不带参实例化
val c2 = collegeStudent("tim",18)
val c3 = collegeStudent("tom")
c1.printI()
c1.subject = "数学"
c1.school = "交通大学"
c1.printI()
c2.printI()
c3.printI()
}
//----------3、接口,接口可以只定义函数名而不需要定义函数体
//1)定义接口
interface Study{
fun readbook()
fun doHomeWork()
fun goschool(){
println("带函数体的接口方法,不需要强制定义函数,未定义时默认运行此语句")
}
}
//2)让类继承实现多个接口
class coll(subj:String): Stuedent(), Study {
//利用override重写接口方法
override fun readbook() {
println("readbook")
}
override fun doHomeWork() {
println("dohomework")
}
}
//3)实例化coll类
fun collStu(){
val cc1 = coll("接口学习")
cc1.readbook()
cc1.goschool()
}
fun main(){
//实例化类并调用方法
student("Tom",18,70,2)
//继承
colleageStu()
//接口
collStu()
}
//可修饰性学习,在fun关键字前面加上对应可修饰性关键字即可
//private:只对当前类可见
//protected:仅对当前类和子类可见
//public:公开
//internal:只对同一模块可见
文章为作者独立观点,不代表股票交易接口观点