What is the key difference between `val` and `var` in Kotlin?
-
A
`val` is for integers and `var` is for strings
-
B
`val` is a read-only reference that cannot be reassigned; `var` is mutable and can be reassigned
-
C
`val` is local scope only; `var` is global scope
-
D
`val` requires explicit types; `var` uses type inference