dev/aos
[Kotlin] Map
donguran
2024. 3. 20. 11:55
728x90
반응형
val params Map<String, String> = mapOf("title" to "content1")
params["sub"] = "content2"
Kotlin에서 Map은 읽기전용이다.
그렇기 때문에 params["sub"]에서 더이상 값을 추가할 수 없다.
Map형태로 받은 경우엔 다음과 같이 사용
.toMutableMap() 함수를 사용해서 변형이 가능하도록 한다.
val params: MutableMap<String, String> = (parameterParams ?: mapOf("" to "")).toMutableMap()
params[""] = "";
변형 가능한 상태로 초기화
MutableMap - mutableMapOf("" to "" ) 사용.
val params: MutableMap<String, String> = mutableMapOf("title" to "content")
params["sub"] = "test"
2024-03-28-목
dart로부터 Map<dynamic, dynamic>으로 값이 전달되는 경우,
Kotlin은 Map<*, *>형태로 받을 수 밖에 없다.
debug모드인 경우 문제가 되지 않으나, release모드인 경우 타입 문제가 발생한다.
Map<String, String>형태로 받고 싶은 경우를 예로 코드를 작성해본다.
entries로 Map데이터를 꺼내고, associate로 'String'형태로 변환시켜준 뒤 toMutableMap으로 타입을 변형하여 전달한다.
externalParams: Map<*, *> = externalArguments
deviceParams: Map<String, String> = (externalParams as Map<*, *>).entries
.associate { element -> element.key.toString() to element.value.toString()
.toMutableMap()
728x90
반응형