v79
05/30/2020, 7:43 PMAndrew
05/30/2020, 8:57 PMEvent<P>
, and a bunch of objects that inherit from the class with a few different types for P
. I receive some json that has a name field so that I can match it to one of the objects, and data field that I want to deserialize into an object of type P
. Is there any way to do this without doing a case-by-case when for each event type?Animesh Sahu
05/31/2020, 6:42 AMconst val grid =
"""
08 02 22 97 38 15 00 40 00 75 04 05 07 78 52 12 50 77 91 08
49 49 99 40 17 81 18 57 60 87 17 40 98 43 69 48 04 56 62 00
81 49 31 73 55 79 14 29 93 71 40 67 53 88 30 03 49 13 36 65
52 70 95 23 04 60 11 42 69 24 68 56 01 32 56 71 37 02 36 91
22 31 16 71 51 67 63 89 41 92 36 54 22 40 40 28 66 33 13 80
24 47 32 60 99 03 45 02 44 75 33 53 78 36 84 20 35 17 12 50
32 98 81 28 64 23 67 10 26 38 40 67 59 54 70 66 18 38 64 70
67 26 20 68 02 62 12 20 95 63 94 39 63 08 40 91 66 49 94 21
24 55 58 05 66 73 99 26 97 17 78 78 96 83 14 88 34 89 63 72
21 36 23 09 75 00 76 44 20 45 35 14 00 61 33 97 34 31 33 95
78 17 53 28 22 75 31 67 15 94 03 80 04 62 16 14 09 53 56 92
16 39 05 42 96 35 31 47 55 58 88 24 00 17 54 24 36 29 85 57
86 56 00 48 35 71 89 07 05 44 44 37 44 60 21 58 51 54 17 58
19 80 81 68 05 94 47 69 28 73 92 13 86 52 17 77 04 89 55 40
04 52 08 83 97 35 99 16 07 97 57 32 16 26 26 79 33 27 98 66
88 36 68 87 57 62 20 72 03 46 33 67 46 55 12 32 63 93 53 69
04 42 16 73 38 25 39 11 24 94 72 18 08 46 29 32 40 62 76 36
20 69 36 41 72 30 23 88 34 62 99 69 82 67 59 85 74 04 36 16
20 73 35 29 78 31 90 01 74 31 49 71 48 86 81 16 23 57 05 54
01 70 54 71 83 51 54 69 16 92 33 48 61 43 52 01 89 19 67 48
"""
fun main() {
solve()
}
private fun solve() {
val gridLines = grid.trimIndent().lines()
.map { line -> line.split(" ").map { it.toInt() } }
var result = 0
for (i in 0..gridLines.size - 4) {
for (j in 0..gridLines.first().size - 4) {
// going left to right
run {
val line = gridLines[i]
val res = line[j] * line[j + 1] * line[j + 2] * line[j + 3]
if (res > result) result = res
}
// going top to bottom
run {
val res = gridLines[i][j] * gridLines[i + 1][j] * gridLines[i + 2][j] * gridLines[i + 3][j]
if (res > result) result = res
}
// going diagonally top-left to bottom-right
run {
val res = gridLines[i][j] * gridLines[i + 1][j + 1] * gridLines[i + 2][j + 2] * gridLines[i + 3][j + 3]
if (res > result) result = res
}
// going diagonally top-right to bottom-left
run {
val max = gridLines.first().lastIndex
val res = gridLines[i][max - j] * gridLines[i + 1][max - j - 1] * gridLines[i + 2][max - j - 2] * gridLines[i + 3][max - j - 3]
if (res > result) result = res
}
}
}
println(result)
}
mplain
05/31/2020, 10:48 AMmplain
05/31/2020, 10:50 AM.takeIf {}?.let {} ?: else
mplain
05/31/2020, 12:01 PMStragaSevera
05/31/2020, 4:20 PMmplain
05/31/2020, 5:22 PMval (term, definition) = string.split(" ")
val card = Card(term, definition)
I would like to do this:
val card = Card(string.split(" "))
but it appears I cannot do that
not even with using the spread operator (*)
am I missing some thick? or no such luck?robstoll
05/31/2020, 7:54 PMahmad
05/31/2020, 10:08 PMval list = listOf("ab", "cd")
val string1 = "abf"
val string2 = "xy"
print(myFunction(string1, list)) // true
print(myFunction(string2, list)) // false
Aslam Hossin
06/01/2020, 1:59 AMval list: List<Any>
How to check its type by the condition ?
when(lists){
is List<Cat> -> {
}
is List<Dog> -> {
}
}
}
Is there any way of doing this stuff? Thanks in advance.iguissouma
06/01/2020, 12:48 PMval v = village {
house {
+Person("Emily", 31)
+Person("Hannah", 27)
+Person("Alex", 21)
+Person("Daniel", 17)
}
house {
+Person("Joe", 48)
}
house()
house {
-Person("Sarah", 40)
-Person("Tom", 26)
-Person("Holly", 52)
}
}
Chilli
06/01/2020, 3:03 PMSteve
06/01/2020, 9:14 PMZach Klippenstein (he/him) [MOD]
06/02/2020, 12:19 AMAny
), when you pass a value that satisfies the bounds, the compiler suddenly can’t figure out which one to call.
So this works:
fun <T : Any> StateFlow<T>.thing(): Unit = TODO()
fun <T : Any> Flow<T>.thing(): Unit= TODO()
MutableStateFlow("").thing()
And this:
fun <T> StateFlow<T>.thing(): Unit = TODO()
fun <T> Flow<T>.thing(): Unit = TODO()
MutableStateFlow("").thing()
And this:
fun <T : Any> StateFlow<T>.thing(): Unit = TODO()
fun <T> Flow<T>.thing(): Unit= TODO()
MutableStateFlow("").thing()
But not this:
fun <T> StateFlow<T>.thing(): Unit = TODO()
fun <T : Any> Flow<T>.thing(): Unit = TODO()
MutableStateFlow("").thing()
Mgkaki
06/02/2020, 6:33 AMtasks.getByName<Jar>("jar") {
enabled = true
}
tasks.getByName<BootJar>("bootJar") {
enabled = true
manifest {
attributes( "Main-Class" to "kr.co.korbit.gia.Application")
}
launchScript()
}
This is my bootJar configuration of kotlin SpringBoot Project: But "gradle bootJar" generate following error :
FAILURE: Build failed with an exception.
* What went wrong:
Execution failed for task 'internalbootJar'.
Main class name has not been configured and it could not be resolved* Try: Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights. * Get more help at https://help.gradle.org BUILD FAILED in 3s
user
06/02/2020, 9:30 AMNav Singh
06/02/2020, 9:34 PMfirst()
with collections, It might throw an ExceptionMananpoddarm
06/03/2020, 5:16 AMelect
06/03/2020, 10:45 AM.idea
.. how is possible?Regan Russell
06/03/2020, 11:34 AMspand
06/03/2020, 12:19 PMRegan Russell
06/03/2020, 12:19 PMoverride fun onResponse(call: Call<List<Photos?>?>, response: Response<List<Photos?>?>) {
if it is successful and I see the dataclass fully populated. What is the most elegant way of handling on Response?
SHould I pass an object in the constructor to say call a method on the passed object to populate the data?stanislav.erokhin
Gilles Barbier
06/03/2020, 5:17 PMA
, B
, C
, ... (for our use-case, they are describing different type of Message)
I have a function f
defined by f(msg: A) : AP
, f(msg: B) : BP
, f(msg: C) : CP
... that convert those message into another format (Avro classes)
My issue is that I have no way to apply this function to an arbitrary collection of A
, B
, C
, ..
setOf(msgA, msgB, msgA, msgC, msgB..).forEach { f(it) }
because it
is then of type Any
(despite each f(it)
individually is valid, the syntax is invalid)
Would be happy to receive suggestion 🙂 about how to handle thisAnimesh Sahu
06/03/2020, 5:17 PMlist.map { it.toInt() }
2. list.map(String::toInt)
3. list.map { str: String -> str.toInt() }
zkeme
06/03/2020, 5:51 PMval animals: List<Animal> = ....
val animalToChangeColor = animals[0]
val newColor = ....
val newAnimal = when {
animalToChangeColor is Cat -> {
animalToChangeColor.copy(color = newColor)
}
animalToChangeColor is Sheep -> {
animalToChangeColor.copy(color = newColor)
}
animalToChangeColor is Dog -> {
animalToChangeColor.copy(color = rnewColor)
}
}
Imagine Cat
, Sheep
and Dog
are data classes that implement Animal
interface which has color
field.
It seems impossible to "polyphormise" this, but maybe i'm missing some awesome Kotlin feature 😛nil2l
06/03/2020, 6:12 PMUse property if… is cheap to calculateWhen deciding to use property or function/method. Do you think this guideline about the calculation heaviness is significant? E.g. #1
val File.entropy: Float
get() = TODO()
#2
fun File.getEntropy(): Float = TODO()
nwh
06/03/2020, 7:04 PM111212221
I want my output to be:
[111], [2], [1], [222], [1]
NurBahnhof
06/03/2020, 8:48 PM