我想创建一个MutableList
字母表A
,Z
但到目前为止,我只能将以下方法视为最短的方法,而无需编写每个字母表。
fun main()
{
var alphabets: MutableList<Char> = mutableListOf()
for (a in 'A'..'Z')
{
alphabets.add(a)
}
print(alphabets)
}
Run Code Online (Sandbox Code Playgroud)
所以我想知道是否有任何 Lambda 实现或更短的方法?
我想创建一个MutableList
字母表,然后将它们洗牌并将其存储在另一个MutableList
.
我使用了shuffle()
函数,但它导致原始列表也被打乱,我不想发生这种情况,因为我将使用原始列表将它与新的打乱列表映射。
fun main(){
val alphabets = ('A'..'Z').toMutableList()
var shuffAlp = alphabets
shuffAlp.shuffle()
println(alphabets)
println(shuffAlp)
}
Run Code Online (Sandbox Code Playgroud)
所以我不得不创建两个可变列表,然后对其中一个进行洗牌
val alphabets = ('A'..'Z').toMutableList()
var shuffAlp = ('A'..'Z').toMutableList()
shuffAlp.shuffle()
Run Code Online (Sandbox Code Playgroud)
这可能是一个微不足道的问题,但是有没有其他方法可以让我不必创建两个相同的列表?
我想创建一个大小矩阵,nxn
其中 n 是 input 的长度message:String
。到目前为止,这是我想到的唯一解决方案,它也有四个 for 循环。
fun main(){
println("Enter the message:")
var message:String = readLine().toString()
var cipher = Array(message.length) { Array<Int>(message.length) {0} }
for(i in 0 .. (message.length - 1)){
for(j in 0 .. (message.length - 1)){
cipher[i][j] = readLine()!!.toInt()
}
}
//print the matrix
for(i in 0..(message.length -1)){
for(j in 0..(message.length -1)){
print(cipher[i][j])
}
println()
}
}
Run Code Online (Sandbox Code Playgroud)
有没有更简单的代码?如何改进此代码?
我发现 Kotlin 中的 Lambda 非常混乱,最重要的是“它”。关于“它”,我知道两件事,即
我仍然不明白什么是“它”。
例如,我想对3x3
矩阵的每个元素应用模函数。
fun main(){
var result = Array(3) {
IntArray(3) { 3;2;4;6;7;9;12;11;23 }
}
result = Array(3){ IntArray(3) {it%2} }
println(result.joinToString("\n") { it.joinToString(" ") })
}
Run Code Online (Sandbox Code Playgroud)
在这里,我假设“它”采用矩阵的每个元素,这显然不是我的输出情况:
0 1 0
0 1 0
0 1 0
Run Code Online (Sandbox Code Playgroud)
那么你能解释一下“它”是如何工作的,这里发生了什么?实施该计划的正确方法是什么?
kotlin ×4