RemixRescriptPurescriptnpmCloudflareReactNext.jsGOHyper-VTiberoGitAlgorithms, 2020년

Docs. Let Binding

February 22, 2022

리스크립트 Let Binding

변수 선언이다.

let score = 10
let name = "MiryangJung"
Block Scope

{} 로 스코프 사용, {} 안에서 선언된 변수는 지역 변수이다. 마지막 라인의 value는 암시적으로 리턴된다.

let message = {
  let string = "ABC"
  let reverse = "CBA"
  string ++ " " ++ reverse
}
Design Decisions

if while function 모두 블록 스코프 방식

Bindings Are Immutable

Let binding불변하다.

let name = "MiryangJung"
// Error
// name = "Rhea"
Binding Shadowing

값을 변경하기 위해서 사용하는 방법

let number1 = 0
let number2 = addOne(number1)
let number3 = addTwo(number2)
Private let bindings

기본적으로 모든 것은 public이다. 프라이빗하게 사용하고 싶다면 module 선언에서 public 필드를 따로 표시한다.

module A: {
  let b: int
} = {
  let a = 3
  let b = 4
}

A.b -> Js.log
// The value a can't be found in A
// A.a->Js.log

또는 %%private 도 가능하며 파일 수준에서도 사용가능하다.

%%private(let a = 10)