Tag: 变量

类构造函数和成员变量(字段)

我试图用构造函数声明类,但似乎与该语法冲突并声明类成员。 任何建议如何一起去? class Person (aName:String) { var name : String get() = this.name set(myName) {this.name = myName} init { this.name = aName } }

为什么变量不能像在java中那样在内联函数中正确初始化?

我们知道lambda体是懒惰的 ,因为如果我们不调用lambda,lambda体中的代码永远不会被调用。 我们也知道在任何函数语言中,一个变量可以在函数/ lambda中使用,即使它没有被初始化,比如javascript,ruby,groovy和.etc,例如下面的groovy代码可以正常工作: def foo def lambda = { foo } foo = "bar" println(lambda()) // ^— return "bar" 我们也知道,如果在Java中的try-block中引发异常时catch块已经初始化变量,我们可以访问一个未初始化的变量,例如: // v— m is not initialized yet int m; try{ throw new RuntimeException(); } catch(Exception ex){ m = 2;} System.out.println(m);// println 2 如果lambda是懒惰的,为什么Kotlin不能在lambda中使用未初始化的变量? 我知道Kotlin是一个空安全的语言,所以编译器会从上到下分析代码,包括lambda体,以确保变量被初始化。 所以lambda体在编译时不是“懒惰”的。 例如: var a:Int val lambda = { a }// […]

在lambda kotlin变通方法中的智能转换变量

我今天已经过了一个lambda,它有一个未知类型的变量,并且在when..is条件中,变量不能智能地转换成is条件中的类型…这使得它是不可能的,因为变量是一个公共的API,有没有解决这个?

在Kotlin中一次定义多个变量(例如Java:String x,y,z;)

我想知道是否有任何方法可以像Java中一样在Kotlin中定义多个变量,以及世界上几乎所有其他现有的语言。 像Java一样: String x="Hello World!",y=null,z;

在kotlin中初始化数组

我在kotlin中创建一个haiku生成器,但是我得到一个奇怪的“变量firstLineArray必须初始化”在这个代码块上。 import java.util.Random fun oneSyllableWords() : String{ val oneSyllableWordArray = arrayOf("Life", "Love", "One", "On", "No", "Go") val random = Random() val randint = random.nextInt(oneSyllableWordArray.size) return oneSyllableWordArray[randint] } fun main(args:Array<String>){ var firstLineArray : Array<String> var syllablesRemaining = 5 while(syllablesRemaining<0) { val random = Random() val randint = random.nextInt(4) + 1 for (i in 0..4){ if(randint == […]