otakusenpai
02/05/2019, 1:57 PMinline fun letterInRange(char: Char): Boolean = char.compareTo('a') || char.compareTo('b') ||
char.compareTo('c') || char.compareTo('d') ||
char.compareTo('e') || char.compareTo('f') ||
char.compareTo('g') || char.compareTo('h')
Is there a way to shorten the function a bit more? I mean there are too many cases(and yes its giving an error too....)spand
02/05/2019, 2:00 PMcontains()
?Rafal
02/05/2019, 2:00 PMJake
02/05/2019, 2:01 PMinline fun letterInRange(char: Char) = when(char) {
in 'a'..'h' -> true
else -> false
}
Rafal
02/05/2019, 2:01 PMfun main(args : Array<String>) {
val charRange = CharRange('a', 'g')
print(charRange.contains('b')) //true
print(charRange.contains('z')) //false
}
Jake
02/05/2019, 2:01 PMTsvetozar Bonev
02/05/2019, 2:02 PM('a'..'b').contains('a')
Dias
02/05/2019, 2:05 PM'a' in 'a'..'h'
hudsonb
02/05/2019, 2:33 PMinline fun letterInRange(char: Char): Boolean = char in 'a'..'h'
otakusenpai
02/05/2019, 2:34 PMhudsonb
02/05/2019, 2:41 PMinline fun letterInRange(char: Char) = char in 'a'..'h'
compareTo
returning an Int
, which you can't do boolean logic on (||
)Alan Evans
02/05/2019, 2:49 PMinline
herefun letterInRange(char: Char): Boolean = char.compareTo('a') >= 0 && char.compareTo('h') <= 0
fun letterInRange(char: Char): Boolean = char >= 'a' && char <= 'h'
fun letterInRange(char: Char): Boolean = char in 'a'..'h'
Comparable
CharArray
for this. i.e. it is not allocating an object to do this check, it's just a shorthand.otakusenpai
02/06/2019, 3:36 PM