El `val` en el range for no es inmutable?

En la documentation, val es una variable local val una sola vez (solo lectura) . Sin embargo, a continuación se muestra un ciclo for que asigna valores a x varias veces. ¿Es un concepto diferente al de C ++ const ?

 fun main(args: Array<String>) { val x = 6 val y = 9 for (x in 1..y) { println("fits in range $x") } } 

Salida:

 fits in range 1 fits in range 2 fits in range 3 fits in range 4 fits in range 5 fits in range 6 fits in range 7 fits in range 8 fits in range 9