首页 > 其他分享 >大创项目个人周报(24.7.15-24.7.21)

大创项目个人周报(24.7.15-24.7.21)

时间:2024-07-21 13:51:08浏览次数:9  
标签:15 21 val Int 24.7 var println fun main

本周主要利用B站学习Kotlin语言

一、完成环境的配置和软件的下载

1、开发环境配置

安装Java 8 环境

2、IDEA安装与使用

熟悉IDEA软件

3、熟悉简单代码

var a : Int//
println("KFC vivo 50")

二、变量与基本类型

1、变量的声明与使用

var [变量名称] : [数据类型]

例:

fun main() {
    var a : Int = 10
}
fun main() {
    var a = 10
}

val是常量,var是变量

2、数字类型介绍

val a = 1_000_000_000
val a = 0xAF

val one: Double = 1 // 这种写法是错误的,因为1不是小数,无法编译通过
val one: Double = 1.0 // 但是这种写法就是对的,因为这样表示就是小数,即使小数位是0

3、数字类型的运算

fun main() {
    var a = 10
    println(a++)   //这里++在后面,打印a的值依然是10,但是结束之后a的值就变成11了
    println(++a)   //这里++在前面,打印a的值是这里先自增之后的结果,就是12了
}
println(5 / 2)    //结果是2,而不是2.5

Kotlin提供了一组整数的位运算操作,可以直接在二进制层面上与数字表示的位进行操作,不过只适用于Int和Long类型的数据:

shl(bits)– 有符号左移
shr(bits)– 有符号右移
ushr(bits)– 无符号右移
and(bits)– 按位与
or(bits)– 按位或
xor(bits)– 按位异或
inv()– 取反
  • 按位与: 让这两个数每一位都进行比较,如果这一位两个数都是1,那么结果就是1,否则就是0;
  • 按位或: 只要任意一个为1(不能同时为0)那么结果就是1;
  • 按位异或: 只有两边不相同的情况下,结果才是1,也就是说一边是1一边是0的情况;

4、布尔类型介绍

布尔类型是Kotlin中的一个比较特殊的类型,它并不是存放数字的,而是状态,它有下面的两个状态:

  • true - 真
  • false - 假

5、字符串类型介绍

val str: String = "Hello World"

注意,字符串中的字符一旦确定,无法进行修改,只能重新创建。

有时候为了方便,可以将不同的字符串拼接使用:

fun main() {
    val str1 = "Hello"
    val str2 = "World"
    val str = str1 + str2
    println(str)   //使用 + 来拼接两个字符串,得到的结果就是两个字符串合在一起的结果
}

但是需要注意字符串拼接的顺序,只能由字符串拼接其他类型

流程控制

1、选择结构(if-else)

2、选择结构(when)

when (x) {
    0, 1 -> print("x == 0 or x == 1")
    else -> print("otherwise")
}

3、循环结构(for)

fun main() {
    for (i in 1..3)  //这里直接写入1..3表示1~3这个区间
        println("666")
}

我们也可以自由控制每一轮增加多少:
fun main() {
    for (i in 1..10 step 2) {
        println(i)
    }
}

若倒着遍历:

fun main() {
    for (i in 10 downTo 1) {
        println(i)   //这里得到的就是10到1倒着排列的范围了
    }
}

  • 我们可以使用continue关键字来跳过本轮循环,直接开启下一轮
  • 我们可以使用break关键字来提前终止整个循环

虽然使用break和continue关键字能够更方便的控制循环,但是注意在多重循环嵌套下,它只对离它最近的循环生效(就近原则):

4、循环结构(while)

三、函数

1、创建和使用函数

fun 函数名称([函数参数...]): 返回值类型 {
    //函数体
}

例:

//这个函数用于计算两个Int数之和
fun sum(a: Int, b: Int) : Int {
    return a + b  //使用return语句将结果返回
}
fun main() {
    var result = sum(1, 2)   //获取函数返回值
    println(result)
    println(sum(2, 4))  //直接打印函数返回值
}

2、再谈变量

  • getter:用于获取这个变量的值,默认情况下直接返回当前这个变量的值
  • setter:用于修改这个变量的值,默认情况下直接对这个变量的值进行修改

3、递归函数

4、实用库函数介绍

import kotlin.math.*    //我们需要使用import来引入某些库,这样才能使用库函数

fun main() {
    1.0.pow(4.0)  //我们可以使用pow方法直接计算a的b次方
    abs(-1);    //abs方法可以求绝对值
    max(19, 20);    //快速取两个数的最大值
    min(2, 4);   //快速取最小值
    sqrt(9.0);    //求一个数的算术平方根
}

5、高阶函数与lambda表达式

6、内联函数

三、类与对象

1、类的定义与对象创建

class Student(var name: String, val age: Int = 18) 
fun main() {
  	//使用Student类型的变量接收构造方法得到的对象
    var stu: Student = Student("小明", 18)
}

我们可以使用.运算符来访问对象的属性,比如我们要访问小明这个学生对象的属性:

fun main() {
 val stu = Student("小明", 18)
    println("对象的name = ${stu.name}, age = ${stu.age}")
}

标签:15,21,val,Int,24.7,var,println,fun,main
From: https://www.cnblogs.com/wang-hoNbang/p/18314300

相关文章

  • 2024-07-21 闲话
    今天在家找到了高三几次考试语文作文原稿,当初留下它们的意思是一个字一个字敲一下的,但是暑假实在是没时间了。于是索性一步到位,在博客园上传扫描件吧哈哈。我个人体感是周测发的答题纸的格的大小比模拟考试的时候的格小。但是高考的格子是啥样的我也给忘了。离谱。......
  • luoguP8218 【深进1.例1】求区间和
    【深进1.例1】求区间和题目描述给定$n$个正整数组成的数列$a_1,a_2,\cdots,a_n$和$m$个区间$[l_i,r_i]$,分别求这$m$个区间的区间和。对于所有测试数据,$n,m\le10^5,a_i\le10^4$输入格式第一行,为一个正整数$n$。第二行,为$n$个正整数$a_1,a_2,\cdots,a_n$......
  • InvalidDimensionException:嵌入维度 384 与集合维度 1536 不匹配
    我正在Chromadb上编写python代码来创建矢量数据库我尝试在chromadb中创建包含嵌入的集合。在使用包括嵌入的矢量数据库创建索引期间,我面临这个问题出现错误信息“InvalidDimensionException:嵌入维度384与集合维度1536不匹配”的原因是,你正尝试将维度为384的......
  • 如何实现 Grad-CAM 在 TensorFlow ResNet152V2 上查看激活图/热图以进行图像分类
    您好,我正在使用ResNet152V2做一个关于TensorFlow图像分类的小项目。我编写了一个Train-Predict.py脚本,它能够训练trained_weights.hdf5文件以成功预测自闭症和非自闭症人士的图像。此处。是脚本:#ImportLibrariesimportosimportnumpyasnp......
  • 2024.7.20 模拟赛总结
    T1lcdStatement:给定\(n(1\len\le10^8)\),问有多少对\((i,j)(1\lei,j\len)\)满足\(\frac{xy}{\gcd(x,y)^2}\le3\)。Solution:简单题。令\(x'=\frac{x}{\gcd(x,y)},y'=\frac{y}{\gcd(x,y)}\),枚举\((x',y')\)并计算即可......
  • 暑假第三周总结(7.15-7.20)
    这周做了什么继续学习JAVA,做出了城堡游戏点击查看代码//RoompackagecastleV3;importjava.util.HashMap;publicclassRoom{ privateStringdescription;privateHashMap<String,Room>exits=newHashMap<String,Room>();publicRoom(String......
  • P1502 窗口的星星
    原题链接题解1.首先要解决的问题是,怎样的窗口能包裹住尽可能多的星星?这里有一个很巧妙的思维点,那就是我们构造一个以星星为左下角的矩形,矩形重叠的部分可以构造一个右上角在其中的窗口,这样这个窗口就能覆盖矩阵重合的星星2.这样,问题就转换成了求最大并矩阵权值和(表示窗口的右......
  • 24.7.20
    嗯,今天又提升了一些对于二次元的喜爱所以想写点东西大概就是在刷抖音的时候刷到了很多二次元,真的很喜欢他们那种对二次元的热情,中二的样子真的很可爱,我也真的很像成为其中的一员,但是现在毕竟才初三嘛,家庭也属于那种比较封建一点的那种,管的比较严(安监控),不支持通讯录,并且虽然他们......
  • LocalSend(传输工具) v1.15.1 汉化版
    LocalSend是一款好用的文件传输工具,在这里可以通过软件进行文件高速传输,功能强大操作简单。软件特色1.免费且开源的局域网文件传输工具,同时还可以跨平台传输,各种形式的文件都支持;2.传输速度快,还支持加密和解析,支持共享功能,全都可以免费使用;3.跨平台局域网文件互传工具,无需互联......
  • leetcode位运算(3211. 生成不含相邻零的二进制字符串)
    前言经过前期的基础训练以及部分实战练习,粗略掌握了各种题型的解题思路。接下来重点专项练习,加强重难点知识的练习。描述给你一个正整数 n。如果一个二进制字符串 x 的所有长度为2的子字符串中包含 至少 一个 "1",则称 x 是一个 有效 字符串。返回所有长度......