当前位置: 首页 > news >正文

【Android、 kotlin】kotlin学习笔记

基本语法

fun main(){val a=2var b = "Hello"println("$ (a - 1} $b Kotlin!")}

Variables

只赋值一次用val read-only variables with val

赋值多次用var mutable variables with var

Standard output

printin() and print() functions

String templates

Template expressions start with $

Evaluate a niece of code with {}

基本数据类型basic types

声明变量Declare Variables

val pi : Double =3.14
var p : Int
p = pi.tolnt()

需要强制类型转换Explicit number conversions

99802211d7634aa694ad8d16ec6263b8.jpg

控制流control flow

if语句

max = if (a > b) a else b
val a = 4
val b = 5
val max : Int
if (a > b) {max = a
}
else {max = b
}
println("max = $max")

 range函数

Ranges - create a range to use ..

1..4 equivalent to 1, 2, 3, 4

1..<4 equivalent to 1, 2, 3

4 downTo 1 equivalent to 4, 3, 2, 1

1..5 step 2 equivalent to 1, 3, 5

when函数

Use when when you have a conditional expression with multiple branches

val temp = 20
val description = when(temp) {0 -> "zero"in 1..10 -> "a bit cold"in 11..<20 -> "warm"else -> "hot"             
}
print(description)

for循环

The for loop iterates through anything that provides an iterator. 

for (i in 1..3) {println(i)
}
for (i in array.indices) {println(array[i])
}
for ((index, value) in array.withIndex()) {println("elem at $index is $value")
}

Array

val simpleArray = arrayOf(1, 2, 3)
val intArray : Array<Int> = arrayOf(4, 5, 6)
simpleArray[0] = 10
val exampleArray = IntArray(3)

Collections: List, Set, Map 

函数functions

Basic function

fun sum(a: Int, b: Int): Int {return a + b
}

Function body can be expression

只有一条表达式语句

fun sum(a: Int, b: Int) = a + b

Function without return value

fun printSum(a: Int, b: Int): Unit {println("sum of $a and $b is ${a + b}")
}

Lambda expressions

如果lambda表达式有多个语句,最后一个语句是返回值

fun main() {

var upperCaseString : (String) -> String

upperCaseString = { string: String -> string.uppercase() }

println(upperCaseString("hello"))

}

高阶函数higher-order function

A higher-order function is a function that takes functions as parameters, or returns a function.

包含函数或者函数返回值的函数是高阶函数

fun main() {

val result = operateTwoNumber(1, 2, { a: Int, b: Int -> a + b })#最后一个变量是函数,可以它放在括号外面

}

fun operateTwoNumber(x: Int, y: Int, op: (Int, Int) -> Int): Int {

return op(x, y)

}

`it`

主要用于函数类型中,当函数只有一个参数时,`it`用来表示这个参数对象。

类classes

相关文章:

【Android、 kotlin】kotlin学习笔记

基本语法 fun main(){val a2var b "Hello"println("$ (a - 1} $b Kotlin!")} Variables 只赋值一次用val read-only variables with val 赋值多次用var mutable variables with var Standard output printin() and print() functions String templ…...

Debian 配置国内软件源

为什么需要&#xff1f; Debian安装好之后默认是没有软件源的&#xff0c;只能通过本身的光盘上的软件进行安装&#xff0c;这样明显是不能够满足我们的需要的&#xff0c;考虑到国内的上网速度以及环境&#xff0c;配置一个国内的阿里镜像源是最好的选择。 使用 sudo vim /…...

选数(dfs,isprime)

题目&#xff1a;P1036 [NOIP2002 普及组] 选数 - 洛谷 | 计算机科学教育新生态 (luogu.com​​​​​​.cn) #include<bits/stdc.h> using namespace std; int n,k; int a[22]; long long ans; bool isprime(int n){for(int i2;i<sqrt(n);i){if(n%i0) return false;…...

RocketMQ(版本4.9.4)+RocketMQ_Dashbord环境搭建(生产者、消费者的前置环境搭建)

一、官方网站下载 RocketMQ源码包 https://rocketmq.apache.org/zh/docs/4.x/introduction/02quickstart 二、把rocketMQ上传到Linux环境下解压&#xff0c;编译&#xff0c;执行以下命令&#xff08;需要提前装jdk和maven并配置好环境变量&#xff09; unzip rocketmq-all-4…...

css隐藏溢出隐藏的滚动条

msOverflowStyle: none: 这个属性用于在 Internet Explorer 浏览器中定义滚动条的样式。将其设置为 none 可以隐藏滚动条。 scrollbarWidth: none: 这个属性用于定义滚动条的宽度。将其设置为 none 可以隐藏滚动条。这个属性在一些新的浏览器中被支持&#xff0c;如 Firefox。…...

scss常用混入(mixin)、@inclue

mixin和inclue的基本使用 mixin混入可以用于定义重复使用的样式&#xff0c;比如下面CSS代码 .header {display: flex;justify-content: center;align-items: center;width: 500px;height: 100px; }.footer {display: flex;justify-content: center;align-items: center;width…...

补代码随想录算法训练营第44天 | 完全背包、518. 零钱兑换 II 、377. 组合总和 Ⅳ

完全背包 视频讲解&#xff1a;带你学透完全背包问题&#xff01; 和 01背包有什么差别&#xff1f;遍历顺序上有什么讲究&#xff1f;_哔哩哔哩_bilibili https://programmercarl.com/%E8%83%8C%E5%8C%85%E9%97%AE%E9%A2%98%E7%90%86%E8%AE%BA%E5%9F%BA%E7%A1%80%E5%AE%8C%E5…...

【Linux】网络基础常识{OSI七层模型/ TCP/IP / 端口号 /各种协议}

文章目录 1.网络常识1.0DHCP协议1. 1IP地址/MAC地址/ARP协议是什么&#xff1f;IP/MACARP&#xff1a;IP ⇒ MAC 1.2手机连接wifi的原理 SSID与BSSID手机连接wifiSSID与BSSID 1.3手机如何通过“数据/流量”上网&#xff1f;1.4电脑连接wifi的原理&#xff1f;电脑通过热点上网…...

python--面向对象编程和类的定义,对象的创建

一、面向对象简介 1、什么是面向对象 面向对象是一种编程思想&#xff0c;把数据和对数据的多个操作方法封装在一起组成类&#xff0c;这样通过这个类创建出来的对象,就可以直接调用这些方法了。 2、面向对象相关的术语 类&#xff1a;用来描述具有相同的属性和方法的对象的…...

nssm 工具把asp.net core mvc变成 windows服务,使用nginx反向代理访问

nssm工具的作用&#xff1a;把项目部署成Windows服务&#xff0c;可以在系统后台运行 1.创建一个asp.net core mvc的项目weblication1 asp.net core mvc项目要成为windows服务需要安装下面的nuget包 <ItemGroup><PackageReference Include"Microsoft.Extension…...

String Encryptor custom Bean not found with name ‘jasyptStringEncryptor‘...

项目采用 spring boot 2.6.13 jasypt-spring-boot-starter 3.0.5 apollo-client 1.6.0 自定义jasyptStringEncryptor&#xff0c;服务器上启动死活报找不到bean jasyptStringEncryptor&#xff0c;采用默认的&#xff0c;密文配置项自然解密失败导致服务无法启动。 经过一…...

FastAPI+React全栈开发14 FastAPI如何开发REST接口

Chapter03 Getting Started with FastAPI 14 How does FastAPI speak REST FastAPIReact全栈开发14 FastAPI如何开发REST接口 Let’s create a minial FastAPI application, a classic Hello World example, and start examining how FastAPI structures the endpoints. I u…...

在 DDD 中,如何处理领域对象的持久化?

在 DDD 中&#xff0c;领域对象的持久化工作通常是通过仓库 Repository 和工厂 Factory 实现的。仓库是一种用于访问领域对象的机制。他负责将领域对象从内存中保存到持久存储&#xff0c;如数据库中&#xff0c;以及从持久存储中检索领域对象。而工厂则负责从持久存储中组装领…...

centos 如何安装nvidia-container-runtime

在CentOS上安装nvidia-container-runtime&#xff0c;首先需要确保你的系统已经安装了NVIDIA的驱动和docker。以下是安装步骤&#xff1a; 确保Docker已安装&#xff1a; sudo yum install -y yum-utils sudo yum-config-manager --add-repo https://download.docker.com/lin…...

非写代码无以致远

标题党一下&#xff0c;本篇文章主要汇总了一些代码题&#xff0c;让大家写一些代码练习一下吧&#xff01; 变种水仙花_牛客题霸_牛客网 (nowcoder.com) #include<stdio.h> int main() {for (int i 10000; i < 99999; i) {int sum 0;for (int j 10; j < 1000…...

刷题之Leetcode34题(超级详细)

34. 在排序数组中查找元素的第一个和最后一个位置 力扣链接(opens new window)https://leetcode.cn/problems/find-first-and-last-position-of-element-in-sorted-array/ 给定一个按照升序排列的整数数组 nums&#xff0c;和一个目标值 target。找出给定目标值在数组中的开始…...

从0到1构建uniapp应用-store状态管理

背景 在 UniApp的开发中&#xff0c;状态管理的目标是确保应用数据的一致性&#xff0c;提升用户体验&#xff0c;并简化开发者的工作流程。通过合理的状态管理&#xff0c;可以有效地处理用户交互、数据同步和界面更新等问题。 此文主要用store来管理用户的登陆信息。 重要…...

Uinx线程详解

目录 一.什么是线程&#xff1f; 并发&#xff08;Concurrency&#xff09; 并行&#xff08;Parallelism&#xff09; 1.1 线程的概念 1.2 线程的基本函数 1.3 线程的基本使用例子&#xff1a; 二.线程的属性 2.1线程属性使用例子 三.线程互斥 3.1互斥锁 3.2互斥锁常用函…...

线性代数笔记23--马尔可夫矩阵、傅里叶级数

1. 马尔可夫矩阵 例子 A [ . 1 . 001 . 3 . 2 . 099 . 3 . 7 0 . 4 ] A \begin{bmatrix} .1 & .001 & .3\\ .2 & .099 & .3\\ .7 & 0 & .4 \end{bmatrix} A ​.1.2.7​.001.0990​.3.3.4​ ​ 马尔可夫矩阵满足条件 λ 1 为特征值 \lambda1为特征…...

Elasticsearch 压测实践总结

背景 搜索、ES运维场景离不开压力测试。 1.宿主机层面变更&#xff1a;参数调优 & 配置调整 & 硬件升级2.集群层面变更&#xff1a;参数调优3.索引层面变更&#xff1a;mapping调整 当然还有使用层面变更&#xff0c;使用API调优&#xff08;不属于该文章的讨论范围…...

终极免费跨平台待办清单:My-TODOs 让您的任务管理回归简单高效

终极免费跨平台待办清单&#xff1a;My-TODOs 让您的任务管理回归简单高效 【免费下载链接】My-TODOs A cross-platform desktop To-Do list. 跨平台桌面待办小工具 项目地址: https://gitcode.com/gh_mirrors/my/My-TODOs 在信息爆炸的时代&#xff0c;我们每天都在处理…...

智慧树刷课插件:3分钟实现自动播放,彻底告别手动刷课烦恼!

智慧树刷课插件&#xff1a;3分钟实现自动播放&#xff0c;彻底告别手动刷课烦恼&#xff01; 【免费下载链接】zhihuishu 智慧树刷课插件&#xff0c;自动播放下一集、1.5倍速度、无声 项目地址: https://gitcode.com/gh_mirrors/zh/zhihuishu 还在为智慧树平台繁琐的手…...

开源AI智能体记忆服务:构建持久化共享记忆中枢

1. 项目概述&#xff1a;为AI智能体构建持久化共享记忆中枢 如果你正在构建或使用基于LangGraph、CrewAI、AutoGen这类框架的多智能体系统&#xff0c;或者你厌倦了每次与Claude、Cursor等AI助手开启新会话时都要重复解释项目背景&#xff0c;那么你很可能正面临一个核心痛点&…...

OBS多平台直播终极指南:如何一键同步推流到所有主流平台

OBS多平台直播终极指南&#xff1a;如何一键同步推流到所有主流平台 【免费下载链接】obs-multi-rtmp OBS複数サイト同時配信プラグイン 项目地址: https://gitcode.com/gh_mirrors/ob/obs-multi-rtmp 你是否曾经为了同时在多个直播平台开播而手忙脚乱&#xff1f;每次都…...

JSCJ-ELEC长电长晶原厂一级代理分销经销

JSCJ-ELEC长晶长电原厂一级代理分销经销 品牌 元件类别 型号 描述 包装 数量 CJ 二极管 RB160M-30 SOD-123 3000 45,000...

GPU可编程性演进与自动化架构设计解析

1. GPU可编程性演进史&#xff1a;从固定管线到通用计算的蜕变之路在计算机图形学发展的早期阶段&#xff0c;GPU采用的是完全固定功能的图形管线架构。这种架构将整个渲染流程固化在硬件中&#xff0c;开发者只能通过OpenGL等图形API调用预设功能&#xff0c;无法对渲染过程进…...

3个步骤掌握Sketch MeaXure:设计师与开发者的终极协作桥梁

3个步骤掌握Sketch MeaXure&#xff1a;设计师与开发者的终极协作桥梁 【免费下载链接】sketch-meaxure 项目地址: https://gitcode.com/gh_mirrors/sk/sketch-meaxure 你是否厌倦了在Sketch中手动测量每个元素、反复截图标注的日子&#xff1f;Sketch MeaXure正是为解…...

2026年精选5大小程序定制开发排行榜:赋能数字化转型新体验

导读&#xff1a;随着2026年企业数字化转型加速推进&#xff0c;小程序定制开发作为核心工具&#xff0c;正成为各行各业提升运营效率与用户互动的重要载体。本次深度测评聚焦当前市场中技术实力突出、服务能力全面的五家专业服务商&#xff0c;通过多维度剖析&#xff0c;为寻…...

IPBan快速入门:一键安装配置,立即阻止僵尸网络入侵

IPBan快速入门&#xff1a;一键安装配置&#xff0c;立即阻止僵尸网络入侵 【免费下载链接】IPBan Since 2011, IPBan is the worlds most trusted, free security software to block hackers and botnets. With both Windows and Linux support, IPBan has your dedicated or …...

AIAgent系统崩溃前的7个征兆:基于SITS2026容错框架的实时预警与自愈方案

更多请点击&#xff1a; https://intelliparadigm.com 第一章&#xff1a;SITS2026容错框架的理论根基与演进脉络 SITS2026&#xff08;Self-Integrating Tolerance System 2026&#xff09;并非凭空而生&#xff0c;其设计深度植根于分布式系统可靠性理论、形式化验证方法论与…...