Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save suzuki0keiichi/6078606 to your computer and use it in GitHub Desktop.
Save suzuki0keiichi/6078606 to your computer and use it in GitHub Desktop.
Scala.jsでifの最後の評価結果の代入がどのように変換されるか
ScalaJS.c.helloworld\ufe33HelloWorld$.prototype.hoge\ufe34I\ufe34O = (function(arg$num) {
// 宣言時の場合は評価結果の場で宣言される(Javascriptではifブロック内スコープは無いので)
if ((arg$num === 20)) {
var value$jsid$11972 = "hello"
} else {
var value$jsid$11972 = "bye"
};
// 再代入の場合は評価結果の場で代入される
if ((arg$num === 20)) {
value$jsid$11972 = "hello"
} else {
value$jsid$11972 = ScalaJS.bI(10)
};
// 戻り値も評価結果の場にreturnが入る
return value$jsid$11972
});
ScalaJS.c.HelloWorld$.prototype.hoge__I__O = (function(num) {
// 宣言時の場合は評価結果の場で宣言される(Javascriptではifブロック内スコープは無いので)
if ((num === 20)) {
var value = "hello"
} else {
var value = "bye"
};
if ((num === 20)) {
value = "hello"
} else {
value = ScalaJS.bI(10)
};
return value
});
object HelloWorld {
def hoge(num: Int) = {
var value: Any = if (num == 20) { "hello" } else { "bye" }
value = if (num == 20) { "hello" } else { 10 }
value
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment