ç§ăŻăăhttps://golang.org/doc/faq#Does_Go_have_a_ternary_formă§ăŽGoăŽć Łçżă¨č¨čŞăŽč¨č¨č ăŽč°čŤăŤĺćăăăăăăŻč¨čŞăŤćŹĺ˝ăŤćŹ ăăŚăăćŠč˝ă ă¨ćăăžăă
Că§ćŹĄăŽăłăźăăčăăŚăżăžăăăă
printf("my friend%s", (nbFriends>1?"s":""));
ăžăăŻC++ăŽĺ ´ĺďź
std::cout << "my friend" << (nbFriends>1?"s":"") << std::endl;
Goă§ăŻăééăăĺźă辡ăăĺŻč˝ć§ăŽăă大éăŽçš°ăčżăăăžăăŻé常ăŤĺéˇă§éĺšççăŞăłăźăăăăăăŻăăŽä¸Ąćšăçşçăăžăă
解湺ç1ďź
// horribly repetitive, risk of divergence between the two strings
if nbFriends > 1 {
fmt.Printf("my friends\n")
} else {
fmt.Printf("my friend\n")
}
解湺ç2ďźč§Łćąşç2ďź
// difficult to read
fmt.Printf("my friend")
if nbFriends > 1 { fmt.Printf("s") }
fmt.Printf("\n")
解湺ç3ďź
// difficult to read
var plural = ""
if nbFriends > 1 { plural = "s" }
fmt.Printf("my friend%s\n", plural)
解湺ç4ďź
// dangerous (ifTrue and ifFalse are both evaluated,
// contrary to a real ternary operator),
// and not generic at all (works only for strings)
func ifStr(condition bool, ifTrue string, ifFalse string) string {
if condition {
return ifTrue
}
return ifFalse
}
fmt.Printf("my friend%s\n", ifStr(nbFriends > 1, "s", ""))
解湺ç5ďź
// horrible to read, probably inefficient
fmt.Printf("my friend%s\n",
func(condition bool) string {
if condition {
return "s"
}
return ""
}(nbFriends > 1))
@gopherbot ăăŠăăŤGo2ăLanguageChangeăčż˝ĺ
ďź31659ăăăłďź32860ăĺç §ăăŚăă ăăă
ăĺçĽăŽăăăŤăăăŽćąşĺŽăŻăă§ăŤFAQăŤč¨ăăăŚăăžăă FAQăŽĺçăĺ¤ć´ăăĺż čŚăăăă¨ä¸ťĺźľăăăĺ ´ĺăŻăăăă¤ăăŽäžăĺż čŚă§ăă ăăăăŽäžăăă§ăŤčŚăŚăć¤č¨ăăăă¨ăăç´ćăăžăă ĺż čŚăŞăŽăŻăăźăżă§ăăćĄäťśćźçŽĺăčż˝ĺ ăăăă¨ă§ăăłăźăăăăăˇăłăăŤă§čŞăżăăăăŞăĺŽéăŽăăă°ăŠă ă§ăă ăžăăçšăŤăăšăăăăŚăăĺ ´ĺăŤăłăźăăčŞăżăŤăăăŞăăŞăŠăćĄäťśćźçŽĺăŤé˘ăăä¸čŹçăŞć¸ĺżľăŤĺ寞ăăĺźć°ăĺż čŚă§ăă
ăžăăăă¤ăăźăŞçšă§ăăăčąčŞă§ăŽăżćŠč˝ăăăĄăăťăźă¸ćĺĺăŽăăźăŤăŞăźăźăˇă§ăłăăľăăźăăăŚăăŞăăăăăăŽäžăŻéŠĺă§ăŻăăăžăăă
@ianlancetaylor
ďź31659ă§ăä¸é
é˘ć°ăćäžăăăăăŽçľăżčžźăżăŽcond
é˘ć°ă使ç¨ăăă¨ăăăé常ăŤĺŞăăĺ寞ććĄă§ăăă¨ç§ăčăăăăŽăä˝ćăăžăăă ăăăŻăç/ĺ˝ăŽĺźć°ăŽç羥čŠäžĄăĺŻč˝ăŤăăăăăŤăďźă¸ă§ăăŞăăŻé˘ć°ă§ăŻăŞăďźçľăżčžźăżă§ăăĺż
čŚăăăăžăăă ĺäşşçăŤăŻăăăč´ĺ˝çăŞĺéĄă¨ăŻčŚăŞăăŚăăžăăă§ăăăăäşşă
ăcond
é˘ć°ăăăšăă§ăăĺŻč˝ć§ăŤăžă čŚăăă§ăăžăăăăă¨ăăăăăă¨ăăŚăăCăŽä¸é
ćźçŽĺčŞä˝ăŽčąĄĺ˝˘ćĺăăăčŞăżăăăăŻăă ăăă§ăă ă
ăăŽććĄăŻçžĺ¨çľäşăăŚăăăŽă§ăăăŽććĄăăăăŤčż˝ćąăăă¤ăăă§ăăăăăă¨ăĺĽăŽä¸é¨ĺ˝˘ĺźăćă¤ă¨ăăčăăĺŽĺ ¨ăŤčŤŚăăžăăăďź
ç§ăŻĺäşşçăŤăăŽčăăăăăŤć¨ăé˛ăăă¤ăăăŻăăăžăăă ăăăŻçé˘çŽăŞććĄă¨ăăăăăŻč°čŤăŽčăă§ăăă ăăĄăăă誰ăăăăăĺŽéăŽććĄăŤçŁ¨ăä¸ăăăăăŠăăăŻć°ăŤăăžăăă ăăăăĺăĺ ĽăăăăăăăŤăŻăăăăĺŽéăŽć˘ĺăŽăăă°ăŠă ăăŠăă ăĺç´ĺăăăăŤă¤ăăŚăăžă ăăă¤ăăŽăăźăżăčŚăĺż čŚăăăă¨ćăăžăă
OKăć確ăŤăăŚăăăŚăăăă¨ăă
ä¸é ćźçŽĺăăŠăăťăŠä¸čŹçă§ăăăă確čŞăăăŤăŻăäťăŽCăăĄăăŞč¨čŞăŽăłăźăă調ăšăă ăă§ăăă @ Phrounzăĺé ăŽć稿ă§ććăăăăăŤăGoăłăźăčŞä˝ăĺćăăăă¨ăŻĺ°éŁă§ăăăăăŻăĺ¤ăăŽć§é ăćŠč˝ăăăăăŤä˝żç¨ăăăăăă§ăăăăŽä¸ĺ¨ăŽĺ¨ăă
cond
ăŽă˘ă¤ăă˘ă使ç¨ăăă¨ă彟ăŽäžăŻćŹĄăŽăăăŤăŞăăžăă
fmt.Printf("my friend%s\n", cond(nbFriends > 1, "s", ""))
ăăăŻč¨ăŁăŚăăă¸ă§ăăŞăăŻăšăĺ
Ľćăăĺ ´ĺăç§ăŻĺäşşçăŤčŞĺăŽcond
é˘ć°ăä˝ćăăăă¨ăŤćşčśłăăç羥ăăŞăăă¨ăčăăă¨ăĺźć°ăŽčŠäžĄăĺŽäžĄăŞĺ ´ĺăŤăŽăżä˝żç¨ăăžăă
ç§ăŽćčŚă§ăŻă x ? a : b
ăŽăŤăźăŤăç解ăăăăăăăăĺ¤ăăŽăłăźăďźăťăăŽć°čĄďźăć¸ăćšăčŻăă¨ćăăžăă ifăšăăźăăĄăłăăŻĺéˇăŤčŚăăăăăăăžăăăďźç˘şăă§ăŻăăăžăăďźăç解ăăăăă§ăă
ăăăŤăä¸é
ćĄäťśćźçŽĺăŻăăăšăăăăč¤ć°ăŽx ? a : b
ăć¸ăčžźăă¨ăăŤç°ĄĺăŤćŞç¨ăăăĺŻč˝ć§ăăăăžăă ăăăĺ°ĺ
Ľăăăă¨ăŽĺŠçšăŻĺĺă§ăŻăăăžăăă
ä¸é ćźçŽĺăŻăăŻăłăŠă¤ăăźé˘ć°ă§čŚčŚĺăăăŽăç°Ąĺă ă¨ćăăžăă ăăă§ăăăťă¨ăăŠăŽĺ ´ĺăă¨ăŠăźĺŚçăćąăăžăăăăŽĺ ´ĺăé˘ć°ăŽă¨ăŠăźăžăăŻćăĺŻč˝ć§ăŽä˝ăăăšăifă§ăŠăăăăŚĺŚçăăăă¨ăŤăăăăă¤ăłăăłăăĺ°ăŞăăťăŠčŻăăă˘ăăăźăăŤĺžăăťăăăăă§ăăăăč¤ć°ăŽĺĺ˛ăă¸ăăŻăćă¤ăŽă¨ăŻĺŻžç §çă§ăă
ăăŽäžăŻă1ćĺç¨ĺşŚăăăŞăăă¨ăčăăă¨ăăĄăăŁă¨ćŞăäžă ă¨ćăăžăăç§ăŽćčŚă§ăŻăĺŽéăŤăŻčŞăżăŤăăă§ăďźďźďź "s"ďź ""ďź
ăăăăç§ăŻä¸é
ćźçŽĺăčż˝ĺ ăăĺż
čŚăăăăă¨ăŤĺćăăžăă
ăăăŚç§ăŻĺäşşçăŤç§ăŤĺ˝šçŤă¤ă§ăăăăăă¤ăăŽäžăä˝ăăžăăăăăăŚç§ăŻăăŞăăăăăăŽăăă¤ăăŤăăăăé˘äżăăăă¨ăă§ăăă¨ćăăžăă
const PORT = production ? 80 : 8080
ăă䝼ĺ¤ăŽ
const PORT = -1
if production {
PORT = 80
else {
PORT = 8080
}
fmt.Printf("Running %s build!", production ? "Production" : "Debug") .. etc
ăăăăăĄăăăä¸é ćźçŽĺăĺŚăśăŽăŻé常ăŤĺ°éŁă§ăă
ăŻăăăăăŻçšăŤăăăăŹăăŤăŽĺ ´ĺăŤčŻăäžă§ăă
const production = true
//...
const PORT = production ? 80 : 8080
PORTăĺćĺăăăăăŤinit
é˘ć°ăŻĺż
čŚăŞăăăă§ăă
çľăżčžźăżăŽcond
é˘ć°ăŻă const
ĺćĺĺă¨ăăŚä˝żç¨ă§ăăĺŻč˝ć§ăăăăžăăăćąç¨ăăźă¸ă§ăłă§ăŻä˝żç¨ă§ăăžăăă§ăăă
@Terottaja @alanfo
ăăŽçšĺŽăŽĺéĄăŤĺŻžăăć Łç¨çăŞč§ŁćąşçăŻăăăŤăĺśç´ă使ç¨ăăăă¨ă ă¨ćăăžăă
@Terottaja
ă°ăăźăăŤĺ¤ć°/ĺŽć°ăŽč§ŁćąşçăŤă¤ăăŚăŻăäťăŽăłăĄăłăăĺç §ăăŚăă ăăă
ăăźăŤăŤĺ¤ć°/ĺŽć°ăŽĺ ´ĺăăăŽăłăźăăŽĺšłĺăć¸ăăăăŽć Łç¨çăŞćšćłă ă¨ćăăžăă
const PORT = -1
if production {
PORT = 80
else {
PORT = 8080
}
ăŻďź
PORT := 8080
if production {
PORT = 80
}
constăvarăŤĺ¤ć´ăăă¨ä¸ťĺźľăăăă¨ăă§ăăžăăăăłăłăă¤ăŠăĺĺăŤčł˘ăăŞăăŁăĺ ´ĺăŻéŠăăăăă¨ă§ăăăă
ăăŽçšĺŽăŽäžă§ăŻăPORTăconst
ăăăvar
ă§ăăăăŻăăăăĺéĄă§ăŻăăăžăăăăăăä¸čŹçăŤăŻĺéĄăŤăŞăĺŻč˝ć§ăăăăžăă ăă¨ăă°ăé
ĺăŽăľă¤ăşăĺŽçžŠăăăăăŤä˝żç¨ăăăć´ć°ă厣č¨ăăŚăăĺ ´ĺă§ăă
ăăăăăç§ăŻăăŽććĄăŤă¤ăăŚčŞĺăŽçŤĺ ´ăć確ăŤăăšăă§ăă ç§ăŻĺäşşçăŤăć¨ćşăăŽä¸é
ćźçŽĺăŤĺéĄăŻăăăžăăăăăăŽĺ˝˘ĺźă§GoăŤĺ°ĺ
ĽăăăŽăčŻăčăăăŠăăăŻăăăăžăăă 䝣ăăăŤăăŻăăăŤčŞăżăăăcond
ăăŤăă¤ăłăŽćšăăŻăăăŤĺĽ˝ăă§ăăăçžĺŽçăŤăŻăăŠăĄăăăćĄç¨ăăăĺŻč˝ć§ăŻăťă¨ăăŠăăăžăăă
@Terottaja
ă°ăăźăăŤĺ¤ć°/ĺŽć°ăŽč§ŁćąşçăŤă¤ăăŚăŻăäťăŽăłăĄăłăăĺç §ăăŚăă ăăă
ăăźăŤăŤĺ¤ć°/ĺŽć°ăŽĺ ´ĺăăăŽăłăźăăŽĺšłĺăć¸ăăăăŽć Łç¨çăŞćšćłă ă¨ćăăžăă
const PORT = -1 if production { PORT = 80 else { PORT = 8080 }
ăŻďź
PORT := 8080 if production { PORT = 80 }
_const_ă_var_ăŤĺ¤ć´ăăă¨ä¸ťĺźľăăăă¨ăă§ăăžăăăăłăłăă¤ăŠăźă_賢ăăŞăăŁăĺ ´ĺăŻéŠăăžăâ˘__PORT_ăŻĺŽć°ă§ăăăăăIMOăŻĺŽéăŽăłăźăăŤéăăŻăăăžăăă
ăłăźăăŤăăŽç¨ŽăŽăăŽăăăăăăăĺ ´ĺăŻăăăŽĺ ´ĺăä¸é ćźçŽĺăŽćšăééăăŞăăŻăŞăźăłăŤăŞăă¨ćăăžăăç§ăŽćčŚă§ăă
ç§ăŽćčŚă§ăŻă
x ? a : b
ăŽăŤăźăŤăç解ăăăăăăăăĺ¤ăăŽăłăźăďźăťăăŽć°čĄďźăć¸ăćšăčŻăă¨ćăăžăăif
ăšăăźăăĄăłăăŻĺéˇăŤčŚăăăăăăăžăăăďźç˘şăă§ăŻăăăžăăďźăç解ăăăăă§ăăăăăŤăä¸é ćĄäťśćźçŽĺăŻăăăšăăăăč¤ć°ăŽ
x ? a : b
ăć¸ăčžźăă¨ăăŤç°ĄĺăŤćŞç¨ăăăĺŻč˝ć§ăăăăžăă ăăăĺ°ĺ Ľăăăă¨ăŽĺŠçšăŻĺĺă§ăŻăăăžăăă
常ăŤăăăćŞç¨ăăäşşă ăăăă§ăăăăăłăźăăŻăăŽĺż çśçăŤćŞç¨ăăăĺŻč˝ć§ăăăăžăăăăăăŻăăŞăăŤĺ˝ąéżăĺăźăăžăăďź ăťă¨ăăŠăŽĺ ´ĺă
ç§ăŻăăŽćŠč˝ăăľăăźăăăŚăăžăăăăłăźăăŽäšąç¨ăŤă¤ăŞăăĺŻč˝ć§ăăăăžăăăä¸čŹçăŞif / elseăéżăăŚä¸é
ćźçŽĺăŤç˝Žăćăăă¨ăăłăłăă¤ăŠăŽćéŠĺăŤé常ăŤĺ˝šçŤăĄăžăă
äşşă
ăŻćĺăăăăăĺä˝ăŽăˇăăăčĄăŁăŚăăžăăďźčŞ°ă彟ăă貏ăăăă¨ăă§ăăžăăăčŞăżăăăăŽĺĺ ă§ăăăĺä˝ăŽăˇăăăĺăé¤ăăă¨ăŻčŞ°ăććĄăăŚăăžăăďźă
@Lexkane ďźăłăłăă¤ăŠăŤăŻăćĄäťśäťă秝ĺă使ç¨ăăćéŠĺăăă§ăŤăăăžăă ăăŽăăăŞćéŠĺă埡ĺśăăăăăŽč¨čŞć§é ăŻĺż čŚăăăžăăă ăă¨ăă°ă揥ăŽăłăźăăŻ1ă¤ă使ç¨ăăžăă
func f(x, y int) int {
r := 3
if x < y {
r = 7
}
return r
}
ćĄäťśäťă秝ĺăçćăăăŚăăŞăçšĺŽăŽă¤ăłăšăżăłăšăăăăăăăĺż čŚă ă¨ćăăăĺ ´ĺăŻăăłăźăă§ĺéĄăéăăžăă
äťäşă§Goă¨JavascriptăĺćăŤä˝żç¨ăăŚăăăŽă§ăGoăăă°ăŠă ă§x ? a : b
ăć¸ăăăă¨ćăŁăăă¨ăŻä˝ĺşŚăăăăžăă ăăăăăšăŚăŽăąăźăšă@ianlancetaylorăŤčĄ¨ç¤şăăăăăŤăăăăć¸ăçăăŚăăĺż
čŚăăăăžăă ăăăŻăăšăŚćŹçŠăŽăăă°ăŠă ă§ăăă
ä¸é
ćźçŽĺăŻăç§ăăĄĺ
¨ĺĄăĺŚć Ąă§ďźĺ¤§ĺŚă§ăăăďźĺŚăśăăŽă§ăăăăăĺ¤ĺ
¸çăŞĺ˝˘ĺźă§ăŻăăłăźăăčŞăżć¸ăăăăăăŽčŞçśăŞćšćłă§ăă
ĺé
ă2é˛ć°ă3é˛ć°ăŽ3税éĄăŽćźçŽĺăăăăă¨ăç§ăăĄăŻçĺŚăłăžăăă GoăŤăŻăIMOăŽćŹĺ˝ăŽççąăăŞăăăăŤ1ă¤ăŽăżă¤ăăăăăžăăă
x ? a : b
ăŽä¸Ąćă
ĺé ă2é˛ć°ă3é˛ć°ăŽ3税éĄăŽćźçŽĺăăăăă¨ăç§ăăĄăŻçĺŚăłăžăăă GoăŤăŻăIMOăŽćŹĺ˝ăŽççąăăŞăăăăŤ1ă¤ăŽăżă¤ăăăăăžăăă
ăăăăăăăăŞăăă°ăŞăăŞăççąăŻăăăžăăă ăä¸ĺ ăăŻăă4ă¤ăŽé¨ĺă§ć§ćăăăŚăăăă¨ăăćĺłăŽčąčŞăŽĺčŞă§ăă ĺć§ăŤă4é˛ćźçŽĺăžăăŻ5é˛ćźçŽĺăç°ĄĺăŤä˝żç¨ă§ăăžăă
ĺäşşçăŤăŻăä¸é
ćźçŽĺăŻăăăŠăŤăă§čŞăăŽăé˘ĺă ă¨ćăăŚăăžăă ĺé
ćźçŽĺă¨äşé
ćźçŽĺă使ç¨ăăă¨ăăăšăŚăăŠăăŤăăăăç°ĄĺăŤç˘şčŞă§ăăžăăăä¸é
ćźçŽĺă使ç¨ăăă¨ăçšăŤăăšăăéĺ§ăăă¨ăä˝ăăŠăăŞăăă常ăŤć確ăŤăŞăă¨ăŻéăăžăăă çšĺŽăŽçśćłă§ăŻăăăăăăăŻăŞăźăłă§ăăă¨ăăč°čŤăčŚăăă¨ăă§ăăžăăăăăăăŽçśćłäťĽĺ¤ă§ăŻăăťă¨ăăŠăŽĺ ´ĺăăăăăŻăăćŞăăăŽă§ăă gofmt
ăŻăć˝ĺ¨çăŤăŻĺ˝šçŤă¤ĺŻč˝ć§ăăăăžăăăăłăźăăĺăăŠăźăăăăăćšćłăŤă¤ăăŚăăăăĺŽéăăăăŻăăăŤçŠćĽľçă§ăăĺ ´ĺăŤéăăžăă ăăšăăçŚć˘ăăăăăă§ăźăłăăăăăăŞăŠăăă税ăŽĺśéăăăăăŽăĺ°ĺ
ĽăăăĺŻč˝ć§ăăăăžăăăăăŽćçšă§ăŻăăăăćŹĺ˝ăŤäžĄĺ¤ăăăăăŠăăăŻăăăăžăăă
ćăĺç´ăŞćźçŽĺăŽăťăăă§ćˇˇäšąăĺźă辡ăăăă¨ăă§ăăă¨ăă§ăŤč¨ăăăŚăăžăă 確ăăŤăGoăłăźăăŻJavaăJavascriptăłăźăăăăčŞăżĺăă¨ć¸ăčžźăżăç°Ąĺă§ăă ăăăăăăăčŞăăŞăăăăă¨ăŻä¸ĺŻč˝ă§ăŻăăăžăăă
ăăăăŁăŚăä¸é
ćźçŽĺăŻä¸ťăŤăŻăłăŠă¤ăăźç¨ă§ăăăăăŽăăăŞĺ ´ĺăŤä˝żç¨ăăĺż
čŚăăăăžăă
ăă䝼ĺ¤ăŽĺ ´ĺăŻăăif --then --elseăă使ç¨ăăŚăăăăć°ĺăăšăăăăłăźăăĺŽĺ
¨ăŤćˇˇäšąăăăăă¨ăă§ăăžăă ăăăŻĺ¸¸ăŤăăŞă揥珏ă§ăă
äşşă
ăŻăăłăźăă§ăŻăłăŠă¤ăăźĺźăçşçăăé ťĺşŚăéĺ°čŠäžĄăăŚăăă¨ćăăžăă ăžăăŞĺ ´ĺăăăăžăăăč¨čż°ăăăăłăźăăŽĺĺăĺăăĺ ´ĺăăăăžăăĺžă§ăă§ăăă°JavascriptăŽĺ˝˘ĺźă§ä¸é
ćźçŽĺă使ç¨ăăăĺ ´ĺăăăăžăă
ç§ăŻGoă§ăăă弽ăă§ăăĺśĺžĄăăăźăŻé常ăĺźă§ăŻăŞăăšăăźăăĄăłăă§čĄăăăžăďźé˘ć°ăŽĺźăłĺşăăŻćăăăŞäžĺ¤ă§ăďźă ĺ¤ăăŽäşşć°ăŽăăč¨čŞăŻăăăšăŚă襨çžă§ăăăăă¨ăçŽćăăŚăăăăăăŻăă°ăă°ćĽ˝ăăăăŽă§ăăăimoăŻă賢ăăăłăźăăć¸ăăă¨ă弨ĺąăăŚăăžăă Goăç§ăŤă¨ăŁăŚăŻă賢ăăćĺ°éăŤćăăăă¨ăăăšăŚă§ăă
ăĄăŞăżăŤăä¸é ĺźăĺŽčŁ ăăĺĽăŽďźă°ăăšďźćšćłăŻćŹĄăŽă¨ăăă§ăă
map[bool]string{true: "", false: "s"}[nbFriends == 1]
map[bool]string{true: "", false: "s"}[nbFriends == 1]
ç´ ć´ăăăăăŞăăŻă§ăăăĺç´ăŞćĺăŞĺşĺăăăăŻăăăŤă賢ăăćăăăŞ? :
ă§ăă
ăăă¤ăăŽĺ¤ĺ ¸çăŞćŠč˝ăŻć厳ă§ăăĺŻč˝ć§ăăăăžăăăç§ăăĄăŻăă§ăŤăăăăŤć ŁăăŚăăžăă ć°ăĽăăŚăăžăăă
ćĄäťśăŻăăźăŤĺ¤ă§ăŞăăă°ăŞăăŞăăŽă§ăćă ç§ăăĄăŻć¸ăĺż čŚăăăăžă
x := 0
y := x != 0 ? 1 : 2
ç´ćçă§ăŻăăăžăăă if
ăšăăźăăĄăłăă§ăŻăä¸čŚif
ă襨示ăăăćĄäťśăĺĺ¨ăăăă¨ăăăăŁăŚăăăăă§ăă
ä¸é
ĺźă§ăŻă ?
ă襨示ăăăŚăăĺ ´ĺăŤăŽăżăăăăćĄäťśă§ăăăă¨ăăăăăžăă č¤éăŞĺ ´ĺăŻăéŠăăŚćťăŁăŚçść
ăăăä¸ĺşŚčŞăżăžăă
čŞăżĺăăăăźă塌ăăĺłăä¸ăăä¸ăŤĺĺ˛ăăžăă
_const_ă_var_ăŤĺ¤ć´ăăă¨ä¸ťĺźľăăăă¨ăă§ăăžăăăăłăłăă¤ăŠăźă_賢ăăŞăăŁăĺ ´ĺăŻéŠăăžăâ˘__PORT_ăŻĺŽć°ă§ăăăăăIMOăŻĺŽéăŽăłăźăăŤéăăŻăăăžăăă
ăžăăăăăŻć常ć§ă夹ăăă¨ăŤăăŁăŚéăăçăżăžăă ConstăŻćéŠĺă ăă§ăŻăăăžăăă ăăăŤä¸ăŽăłăźăăŻăĺ¤ă桡䚹ăăăĺŻč˝ć§ăăăăžă
ăŠăă§ăăďźä¸é
ăŻä˝ăăŞăăžăăăăăšăăŻă§ăăžăăă
ç§ăŻăăă揲ăăă§ăă
something ? foo : bar
ăčŞăżăăăĺŻä¸ăŽççąăŻăäťăŽč¨čŞă§ăŽä˝żç¨ăŤăă§ăŤć
ŁăăŚăăăăă§ăă ăăăăćąşăăŚăăăăăčŞăżăăăăăăć確ă§ăăăă¨ăŻăăăžăă
if something {
foo
} else {
bar
}
çšăŤGoă珏ä¸č¨čŞă§ăăć°ĺč ăŽăăăŤă
čŞăżăăăăčŻăăŞăĺ ´ĺăăăăăĺžăăăĺŻä¸ăŽĺŠçšăŻăăłăźăăŽčĄć°ăć¸ăăăă¨ă§ăă ç§ăŤăŻăăăăŻç§ăăĄăăă§ăŤćăŁăŚăăăăŽăŤĺŻžăăŚăăžăç´ćçă§ăŻăŞă䝣ćżăŽć§ćăĺ°ĺ
ĽăăăŽăŤĺĺăŞççąăŽăăăŤăŻćăăžăăă
ăă§ăŤif
ăăăăžăă ĺăăă¨ăčĄăăŽăŤç´ćçă§ăŞăĺĽăŽćšćłăčż˝ĺ ăăăŽăŻăŞăă§ăăďź
if something { foo } else { bar }
'else'ăŻăžăăčŚçˇă¨čŞăżăăăăĺŁăăžăďźćĄäťśăćťăŁăĺ ´ĺăŻăćťăŁăŚčŞăżç´ăĺż čŚăăăăžăďźă 'ďź'ăĺŞĺ ăăŚ'else'ăĺé¤ăăăťăăăăă§ăăăă
something ? foo : bar
ăčŞăżăăăĺŻä¸ăŽççąăŻăäťăŽč¨čŞă§ăŽä˝żç¨ăŤăă§ăŤć ŁăăŚăăăăă§ăă ăăăăćąşăăŚăăăăăčŞăżăăăăăăć確ă§ăăăă¨ăŻăăăžăăif something { foo } else { bar }
ăžăăăăăŻăăă¤ăăŽçšă§ăăć確ă§ăďź
çšăŤGoă珏ä¸č¨čŞă§ăăć°ĺč ăŽăăăŤă
ăŞăč¨čŞăŻăăŽčĄ¨çžĺăć°ĺč ăŤéä¸ăăăăŽă§ăăăăďź ăăăŻăăłăłăăĽăźăżăŽčŞăżć¸ăăă§ăăŞăäşşă ăăŽăăăŤĺç´ăŞUIăä˝ćăăăăăŞăăŽă§ăăăăăăăŁăŚăçšĺŽăŽăă¤ăłăăčś ăăŚä˝ĺăŞĺăéăäşşăčçŤăăăžăă
@bugpowderä¸é
ĺźăŻĺŽĺ
¨ăŤç˝ŽăćăĺŻč˝ă§ăăă if
ăšăăźăăĄăłăăŻăăç´ćçă§ăăă襨çžĺăăăăăăä¸čŹçă§ăă
@bugpowderä¸é ĺźăŻĺŽĺ ¨ăŤç˝ŽăćăĺŻč˝ă§ăăă
if
ăšăăźăăĄăłăăŻăăç´ćçă§ăăă襨çžĺăăăăăăä¸čŹçă§ăă
ăŽăăăŞĺ ´ĺăŻăŠăă§ăăă
println("Example bool is: ", bool ? "true" : "false")
ăăăŻăăłăźăă揥ăŽăăăŤčŚăăăĺ ´ĺăé¤ăăŚă if
ăšăăźăăĄăłăăĺŽéăŤä˝żç¨ă§ăăŞăĺ ´ĺăŤé常ăŤĺ˝šçŤăĄăžăă
bool := "false"
if bool {
bool = "true"
}
println("Example bool is: ", bool ? "true" : "false")
something ? foo : bar
ăčŞăżăăăĺŻä¸ăŽççąăŻăäťăŽč¨čŞă§ăŽä˝żç¨ăŤăă§ăŤć ŁăăŚăăăăă§ăă ăăăăćąşăăŚăăăăăčŞăżăăăăăăć確ă§ăăăă¨ăŻăăăžăăif something { foo } else { bar }
çšăŤGoă珏ä¸č¨čŞă§ăăć°ĺč ăŽăăăŤă
čŞăżăăăăčŻăăŞăĺ ´ĺăăăăăĺžăăăĺŻä¸ăŽĺŠçšăŻăăłăźăăŽčĄć°ăć¸ăăăă¨ă§ăă ç§ăŤăŻăăăăŻç§ăăĄăăă§ăŤćăŁăŚăăăăŽăŤĺŻžăăŚăăžăç´ćçă§ăŻăŞă䝣ćżăŽć§ćăĺ°ĺ ĽăăăŽăŤĺĺăŞççąăŽăăăŤăŻćăăžăăă
ăă§ăŤif
ăăăăžăă ĺăăă¨ăčĄăăŽăŤç´ćçă§ăŞăĺĽăŽćšćłăčż˝ĺ ăăăŽăŻăŞăă§ăăďź
ç§ăăłăźăăŁăłă°ăĺŚăă ă¨ăăä¸é ćźçŽĺăŻćĺăŻĺĽĺŚă§č¤éăŤčŚăăžăăăăăăăŤčŞżăšăŚă揥ăŽăăăŞäžăčŚăĺžă揥ăŽăăăŤăŞăăžăăă
true ? "it's true!" : "It's false!"
ăăăŻćŹĺ˝ăŤčŤççă§ĺç´ăŤčŚăăžăăăăăăăŻç§ă ăă§ăă ĺ¤ĺäťăŽäşşăŤă¨ăŁăŚăŻăăŽčś
č¤éă§ç解ăăăŽăŻéŁăăă§ăă
ç§ăŻăăhttps://golang.org/doc/faq#Does_Go_have_a_ternary_formă§ăŽGoăŽć Łçżă¨č¨čŞăŽč¨č¨č ăŽč°čŤăŤĺćăăăăăăŻč¨čŞăŤćŹĺ˝ăŤćŹ ăăŚăăćŠč˝ă ă¨ćăăžăă
ăăăăFAQăŽćĺžăŽćăŻăăăŞăĺĺ¨ăăŞăăŽăďźďźăăć確ăŤčŞŹćăăŚăăžăă
č¨čŞăŤĺż čŚăŞćĄäťśäťăĺśĺžĄăăăźć§é ăŻ1ă¤ă ăă§ăă`
1čĄă§ăăĺ¤ăăŽăă¸ăăŻăçľăčžźăăćŠč˝ăŻăăžăŁăăć°ăăăăŽă§ăŻăăăžăăă ĺśĺžĄăăăźăĺ¤ć´ăăăăăŽăŻăŞăźăłăŞćšćłăŻăă§ăŤăăăžăăăĺĽăŽćšćłăŻéĺ°ă§ăă
ä¸ĺ ĺźăŽä˝ăĺéĄăŤăŞăŁăŚăăăŽăčŚăŚăżăžăăăă ĺç´ăŞăąăźăšă§ăŻăăŠăĄăăĺéĄăăăžăăă
var a, b int
fmt.Println("Example bool is: ", a != 0 && b != 0 ? "true" : "false")
var a, b int
var c string
if a != 0 && b != 0 {
c = "true"
} else {
c = "false"
}
fmt.Println("Example bool is: ", c)
çŠäşăč¤éăŤăŞăă¨ďźćĄäťśă1ă¤čż˝ĺ ăăďźă3é ĺźăŻăăăžăăŤčŚăăžăă
ăă ăăif-elseăăŠăźă ăăăŽĺ˝šĺ˛ăćăăăžăă çă形ĺźăĺż ăăăć確ăŞĺ˝˘ĺźă§ăăă¨ăŻéăăŞăă¨ćăăžăă
var a, b, c int
fmt.Println("Example bool is: ", a != 0 && b != 0 ? c != 0 ? "true" : "false" : "false")
var a, b, c int
var d string
if a != 0 && b != 0 {
if c != 0 {
d = "true"
} else {
d = "false"
}
} else {
d = "false"
}
fmt.Println("Example bool is: ", d)
ä¸é ĺźăŻăifăšăăźăăĄăłăăŽçšćŽăŞăąăźăšăŤăăăžăăă ĺç´ăŞçšćŽăŞăąăźăšăŽăăăŤć°ăăć§ćăčż˝ĺ ăăăă¨ăŻäžĄĺ¤ăăăăžăăă
ăŻăăăéĄăăăžăăăŻăďź ç§ăŻGoă大弽ăă§ăčŞăżăăăăŤéçšă罎ăăŚăăžăăăé常ăŤĺéˇăŞăłăźăă¨ăăŚäťŁĺăäź´ăăžăă
ä¸é
ćźçŽĺăŻăčŞăżăăăăćăŞăăă¨ăŞăăć¸ăčžźăżć§ăăĺä¸ăăăă¨ĺźˇă俥ăăŚăăžăă ăăăŤăăăGoăŽăłăźăăĺ°ăă¨ăŹăŹăłăă§äžżĺŠăŤăŞăăžăă
ăăăžăăăăăŽäťăŽăłăźăăŁăłă°ăŽĺéĄăŤă¤ăăŚč¨ăă°ăăłăźăăŁăłă°ć ŁčĄăćŞăéçşč ăŻăă¨ăŤăăä¸é ćźçŽĺăŞăă§ćŞăăłăźăăć¸ăă§ăăăă
@ziflex IMHO ăăăăžăăăĺéżăăăăăŽćčŻăŽăłăźăăŁăłă°ćšćłăŻăä¸é ĺźăŽăăč¨čŞă§ăä¸é ĺźă使ç¨ăăŞăăă¨ă§ăă
ăăŞăăéżăăŞăăă°ăŞăăŞăç˝ ăăăăŽă§ăăăŞăăŻćŹĄăŽăăăŞăłăźăăŁăłă°ăŽĺŽčˇľăĺŚăśĺż čŚăăăăžă
ăăăăŽç˝ ăŻăăŞăăŤé ä¸ăăăăăă§ăăăă
@DongchengWangăăăăŽăăŠăŻăăŁăšăŽăăă¤ăăŻăĺç´ăŞăifăăšăăźăăĄăłăăŤç°ĄĺăŤéŠç¨ă§ăăžăă
ĺ¤ăăŽĺçč ăŻăä¸ĺ ăŻäş¤ćĺŻč˝ă§ăăăä˝ăć°ăăăăŽăăăăăăŞăă¨č¨ăăžăă
ăăăĺćăŤăăif errďź=maybeErrorďźďź;ăă使ç¨ăăŚăăäşşăŽć°ăăăăăžăă errďź= nil {}âć§ćăăăăŻăĺç´ăŞăifăăšăăźăăĄăłăă§ăç°ĄĺăŤć¸ăç´ăăă¨ăă§ăăžăă ăăăăä˝ăăăŽççąă§ă誰ăăăăŤă¤ăăŚćŹĺ˝ăŤä¸ĺšłăč¨ăăă¨ăŻăăăžăăă ăŞăă§ďź äžżĺŠă ăăă ăăăŚăăăăăăăŻćĺăăăăŽč¨čŞă§ăăŁăăăă§ăăăă
ç§ăăĄăăăăŤă¤ăăŚč°čŤăăŚăăĺŻä¸ăŽççąăŻăăŞăăŹăźăżăźăćĺăăăăăŤăăŞăăŁăă¨ăăççąă ăă§ăă
ĺäşşçăŤăŻăä¸é ĺźă使ç¨ăăă¨ăčŚăçŽăăăŁăăăăăăšăăăăăłăźăăĺ°ăŞăăŞăĺ ´ĺăăăă¤ăăăăžăă ăťăăŽĺ°ăă§ăăăç§ăŻăăăŤĺ¤˘ä¸ă§ăŻăăăžăă...
ĺ¤ăăĺ°ăŞăăć¨ćşăŽ?:
ćĺă使ç¨ăăŚć§ćăăăăŤč¤éăŤăŞăăŽăéżăăăăăŤă揥ăŽăăăŤfor
ăŤăźăăŽĺ ´ĺăŽăăăŤăć˘ĺăŽč¨čŞăăźăŻăźăăĺĺŠç¨ăăăŽăŻăŠăă§ăăăăă
port := 80 if production else 8080
ăăă§ăăăă§ăźăłăăŚćŞç¨ăăăă¨ăŻă§ăăžăăăĺžćĽăŽif/else
ăăăăŻă§ă§ăăéăăŽăă¨ă§ă...
ăăŽč¨čŞăçăžăăççąăŽĺĺăŤă¤ăăŚăŻăăžă çćłăăĺż čŚăăăă¨ćăăžăăĺç´ă§ăçŠäşăčĄăăăăŽ1ă¤ăŽćç˝ăŞćšćłăç´äş¤ăăćŠč˝ăăăăłăŠă¤ăăŠăŞă§ăă
ăăăŻ70ďź ăăăă ă¨ćăăžăă ăăšăŚăĺŽç§ă¨ăăăăă§ăŻăăăžăăă
ăăăžă§ăŽă¨ăăăGoăŤă¤ăăŚç§ăć°ăŤĺ ĽăŁăŚăăăŽăŻăăłăźăăŁăłă°ăŽćšćłăăĺăĄăłăăźă使ç¨ă§ăăăłăźăăšăżă¤ăŤăŤă¤ăăŚăŽăăźă ăĄăłăăźéăŽč°čŤăĺ°ăŞăăŞăă¨ăăäşĺŽă§ăďźPHPăŽPSRăŽăăžăăžăŞăăźă¸ă§ăłăčŚăăŚăăžăăďźďźă ç§ăăĄ7äşşăŽăĄăłăăźăăăŞăăăźă ă§ăŻăăäşăăŽăłăźăăŤă¤ăăŚč°čŤăăăă¨ăŻăăăžăăă ç§ăăĄăŻčŞĺăăĄăŽçŽć¨ăŤçŚçšăĺăăăŚăăžăă
ä¸é ćĄäťśćźçŽĺă弽ăă§ăŻăŞăă¨ăăăăă§ăŻăăăžăăăăăłăźăăŁăłă°ăŽćšćłăĺźć°ăŽ1ă¤ăŤăŞăăŽă弽ăă§ăŻăŞăăăăGoă¸ăŽčż˝ĺ ăŞăŠăŤĺ寞ăăĺż čŚăăăăžăă
ä¸čŚăŞç çłă ăäťăŽč¨čŞă§ä˝żăăăŚăăăăăŽăćăĄčžźăăă¨ăăŚăăććăŽă˛ă¨ă¤ă ă¨ćăăžăă čĄăćăăŞăă
ä¸č¨ăŽăăăŤăč¨čŞăŤćĄäťśćźçŽĺăăŞăççąă誏ćăăć˘ĺăŽFAQă¨ăłăăŞăăăăžăă ăăŽĺéĄăŻĺźˇĺăŤăľăăźăăăăŚăăžăăă č¨čŞăŤć°ăăćŠč˝ăčż˝ĺ ăăŚăăăăăç°ĄĺăŤăăăă¨ăŻă§ăăžăăă ä˝ăăčĄă2ă¤ăŽćšćłďź if
ăžăăŻ?:
ďźăăăă¨ăĺăăă°ăŠăăźăŻä˝żç¨ăăăăŠăźă ăćąşĺŽăăŞăăă°ăŞăăŞăăă¨ăăăăăăžăăăăăăŻčŻăăă¨ă§ăŻăăăžăăă ä¸čŹçăŤăăăă§ăŻć°ăăč°čŤăŻčŚăăăžăăă
ăăăăŁăŚăăăăŻăăăăć¸ĺ°ă§ăă ćçľçăŞăłăĄăłăăŽăăăŤ1ăćééăăăžăžăŤăăžăă
@ziflexăŽććăŤăăă°ă揥ăŽĺ ´ĺăŤĺéˇăŞă¤ăłăŠă¤ăłăăŠăŽăăăŤčĄăăăăăŻăăăăžăăă
if bool := operation(); bool {}
ä¸é
ćźçŽĺă¨ăŻĺ¤§ăăç°ăŞăăžăă ăăăŻç§ăĺăă§čŤŚăăŞăć§ćă§ăăă揥ăŽăăăŞeval ? a : b
ă¨ĺăč¤éăăŤčŚăăĺŻč˝ć§ăăăăžăă
func main() {
if a := A(); !B(a) && !C(a) && D(C(a)) {
fmt.Println("confused")
}
}
func A() bool {
return true
}
func B(in bool) bool {
return !in
}
func C(in bool) bool {
return in
}
func D(in bool) bool {
return in
}
ăăăŻă1čĄăŤč¨čż°ăăăŚăăŞăăłăźăăăä¸č¨ăŽäžăŽăăă¤ăă¨ĺăăăăŤčŞăăŞăăŞăĺŻč˝ć§ăăăăă¨ă誏ćăăăăă ăăŤĺ˝šçŤăĄăžăă ć§ćIMHOăćŞç¨ăăćŠč˝ăŻăé常ăŤćç¨ăŞćźçŽĺăč¨čŞăŤčż˝ĺ ăăăăŽăé˛ăăŽăŤĺĺăŞççąă§ăŻăăăžăăă
ăă ăăif-elseăăŠăźă ăăăŽĺ˝šĺ˛ăćăăăžăă çă形ĺźăĺż ăăăć確ăŞĺ˝˘ĺźă§ăăă¨ăŻéăăŞăă¨ćăăžăă
var a, b, c int fmt.Println("Example bool is: ", a != 0 && b != 0 ? c != 0 ? "true" : "false" : "false")
ăăăŻćŞăäžă§ăăćŹĺź§ăççĽăăăăăäžăŻç解ăăăăăăŽăŽăé常ăŤăăăăŤăăăăăŤčăăăžăă
ćŹĺ˝ăŤćăgo
var a, b, c int
fmt.Println("Example bool is: ", (a != 0 && b != 0 ? (c != 0 ? "true" : "false") : "false"))
ăăčŞăżăăă
var a, b, c int var d string if a != 0 && b != 0 { if c != 0 { d = "true" } else { d = "false" } } else { d = "false" } fmt.Println("Example bool is: ", d)
ďźăăŞăăŽäžăĺŽéăŤăŻăăăŤĺç´ă§ăăĺŻč˝ć§ăăăă¨ăăŚăăăăăŻéčŚă§ăŻăŞăă¨ćăăžă:)
go
fmt.Println("Example bool is: ", (a != 0 && b != 0 && c != 0 ? "true" : "false"))
äťăŽĺźăăšăăźăăĄăłăĺ ă§ćĄäťśäťăăĺż čŚăŤăŞăăă¨ăăăăžăăăăťă¨ăăŠăŽĺ ´ĺăčŞăżăăăă夹ăăăă¨ćăăŚăăžăă
ç§ăĺžćăăŚăăăă¨ăŽ1ă¤ăŻă严ćšăŽăăŠăłăăăźăĺ¤ăŤăŞăăŞăćĄäťśäťăĺćĺăčĄăćšćłăăŞăăă¨ă§ăă ăłăłăă¤ăŠăŻăăăăăăăçĄé§ăŤăăŞăăťăŠčł˘ăăă¨ăŻçĽăŁăŚăăžăăăć˝čąĄăăˇăłăä˝ăăăăăŤă¤ăăŚăŽç§ăŽćčŚăŻăĺ¤ăăźăăŤăăŚăăăŤä¸ć¸ăăăŚăăăă¨ăćăăŚăăăžăă ăăăŻ...ćŹĺ˝ăŤĺźąăč°čŤă§ăă
FWIWăăExample boolăăŽäžăŽä¸é¨ĺ˝˘ĺźăčŞăżăăăă¨ăŻćăăžăăăçšăŤăçžĺ¨ăŽç§ăŽăăŁăšăăŹă¤ă§ăŻăĺŽĺ ¨ăŞĺźă襨示ăăăăăŤć°´ĺšłăšăŻăăźăŤăĺż čŚăŤăŞăăăă§ăă ăăă§ăăăăăä˝ăăăŚăăăŽăăç解ăăăăăŤăç§ăŻăăŁă¨é ťçšăŤĺĺžăćŻăčżăĺż čŚăăăăžăă
ăăă¤ăăŽăšăŻăŞăăč¨čŞăăăŽćç˝ăŞçăăŻăăšăăźăăĄăłăăĺ˛ăĺ˝ăŚĺŻč˝ăŞĺźă§ăăăăŠăăă¨ăăăă¨ă§ăăç§ăŻĺŽéăŤăăăăŽč¨čŞăŽăăŽč¨č¨ăćŹĺ˝ăŤĺĽ˝ăă§ăăăç§ăŻăăăăăžăćăă§ăăŞăă¨ćăăžăă
ç§ăŻăă¤ăăăă¨ćăăžăďź
x := func() int {
if a {
return 1
}
return 2
}()
...ăăăăčăăŚăżăă¨ăăăăĺçĺă§ăăă°ăĺŽéăŤăŻăăŽăăăŞçśćłă§ăăŞă使ç¨ă§ăăă§ăăăă ăăăŽé˘ć°ăŻĺŽéăŤăŻĺăŞă襨č¨ă§ăăăĺŽéăŤé˘ć°ăłăźăăçćăăĺż čŚăŻăăăžăăăĺ é¨ăăăăŻă§ćťăĺźă使ç¨ăăćšćłăĺż čŚă§ăă...
Goč¨čŞăŻĺç´ăăŽăăăŤçăžăăžăăă ăŞăăăŞăăŻăăăăŽć´žćăŞăă¨ăăăăăŽă§ăăďź ć°čĄăŽăłăźăăć¸ăăăăăŤćăăžăăăăłăźăăăăăŤč¤éăŤăŞăă桡䚹ăçăăžăă
ă ăăç§ăŻăľăăźăăăŚăăžăă
ăăăĄăłăˇăźăă§ăŻăŞăăăăˇăłăăŤăăŞăŽă§ă´ăŁăăă¨ĺăžăăžăăäťăŽĺ¤ăăŽč¨čŞă§ä˝żç¨ăăŚăăăŽă§ăăŞăăżă§ăă ăżă¤ăăłă°ăĺ°ăŞăä¸čĄĺźăŞăŽă§äžżĺŠă§ăă ăăăŻç§ăăĄăăă使ăä¸čŹçăŞć§é ăŞăŽă§ăćăŁăŚăăăă¨ăéčŚă§ăă
揥ăŤăPythonăŽăăăŞăŞăšăĺ
ĺ
襨č¨ă使ç¨ăăžăă
a if a>1 else b
RustăŽăăăŤăăăăă税éĄăŽĺĽĺŚăŞăˇăłăăŤăŽäťŁăăăŤă
ăăăăŽĺĽĺŚăŞč¨ĺˇă使ç¨ăăŚăłăźăăççĽăăăăăăăăă襨çžăăăăăŤăăĺ¤ăăŽăłăźăăč¨čż°ăăăă¨ćăăžăă
ăłăźăăŻäşşă
ăčŞăăăăŽăăŽă§ăă
GoăŽćŹćĽăŽćĺłăă¤ăžăăˇăłăăŤă§čŞăżăăăăăŽăç ´ĺŁăăŚăăăăăä¸čŹçăŤä˝żç¨ăăăŚăăŞăçśćłă§ăŻć°ăăććłé˘ć°ăčż˝ĺ ăăŞăă§ăă ăăă
ĺ¤ăăŽäşşăŻăçšĺŽăŽçśćłă§ăŽĺŠäžżć§ăŽăăăŤăăžăăŻäťăŽăăă°ăŠăăłă°č¨čŞăŤăăŁăŚćäžăăăäžżĺŠăŞćŠč˝ăŤçăăăăăŚăăăăăŤăĺŠĺˇąçă§ăăĺ ´ĺăăăă¨ćăăžăăGoăŤăć°ăŤĺ
ĽăăŽćŠč˝ăčż˝ĺ ăăĺż
čŚăăăăžăă
ç§ăč¨ăăăăŽăŻăGoăŻăăŞăăŽč¨čŞă§ăŻăŞăăGoăŤăŻçŹčŞăŽéăăăă¨ăăăă¨ă§ăă
ăăŞăăŻăăŞăčŞčşŤăŽč¨čŞăçşćăăăă¨ăă§ăăžăăăăăŞăăŻăăăăăă¨ăă§ăăžăă
@YanwenjiepyăăŞăăGoăŽăç´ç˛ä¸ťçžŠč ăăŤăŞăăç§ăŽćčŚă§ăŻé˛ćŠă匨ăăŚăăăăă§ăă
I would rather write more code to express it than to use these strange symbols
ăăăŻăăŞăăŤă¨ăŁăŚĺĽĺŚăăăăăžăăăăä¸čŹçăŞCăăźăšăŽč¨čŞăŤç˛žéăăŚăăç§ăăĄăŽăťă¨ăăŠăŤă¨ăŁăŚĺĽĺŚăŞč¨ĺˇă§ăŻăăăžăăă CăC ++ăCďźăJavaăJavaScriptăŞăŠăăăăăŻăăšăŚ3é
ĺźăćăŁăŚăăžăă
Please don't add new grammar functions for a situation that is not commonly used
ä¸é
ćĄäťśćăŻĺŽéăŤăŻé常ăŤäžżĺŠă§ăä¸čŹçăŤä˝żç¨ăăăŚăăžăă
ăĄăŞăżăŤăăăăŻăăŞăšăĺ
ĺ
ăă§ăŻăăăžăăă ăŞăšăĺ
ĺ
襨č¨ăŻăĺ
ˇä˝çăŤăŻ[x for y in z]
ďźăăăăăăŠăšćĄäťśďźăŽăăăŞăăŽă§ăă ĺźă§ăŽif/elseăŽä˝żç¨ăŻĺĽăŽćŠč˝ă§ăă
ç§ăŻä¸é ćźçŽĺăŤç˛žéăăŚăăăäşşçăŽăťă¨ăăŠă§ä¸é ćźçŽĺă使ç¨ăăŚăăč¨čŞă使ç¨ăăŚăăžăăăäťăŽč¨čŞă§čŚă使ç¨ćłăŽç´95ďź ăŻăGoă忍éŠăŤćŠč˝ăăăăăŽăŤăŻéŠăăŞăă¨ćăăžăinăGoăŻăĺźă§ä˝żç¨ă§ăăpreincrement / postincrementćźçŽĺăŞăŠăăă税ăŽć ĺ ąĺŻĺşŚăĺéżăăĺžĺăăăăä¸é ćźçŽĺăŤăĺăć šćŹçăŞĺéĄăăăă¨ćăăžăă ăăăä˝ăăăăŽăăčăăăŤăŻăăžăăŤăĺ¤ăăŽăšăăźăšăĺż čŚă§ăă
ăłăłăă¤ăŠăŻăăŞă賢ăă§ăă ĺ¤ă厣č¨ăăćĄäťśäťăă§ĺ˛ăĺ˝ăŚă1ĺ使ç¨ăăă¨ăăłăłăă¤ăŠăźă3é ĺźăŽĺ ´ĺă¨ăťăźĺăăăăŤĺä˝ăăăă¨ăćĺž ă§ăăžăă
@YanwenjiepyăăŞăăĺ˛ç˘ăŽăç´ç˛ä¸ťçžŠč ăăŤăŞăŁăŚăăăăă§ăăăç§ăŽćčŚă§ăŻé˛ćŠă匨ăăŚăăžăă
I would rather write more code to express it than to use these strange symbols
ä¸čŹçăŞCč¨čŞăŤç˛žéăăŚăăç§ăăĄăŽăťă¨ăăŠăŤă¨ăŁăŚăăăăŻĺĽĺŚăăăăăžăăăăĺĽĺŚăŞčĄ¨č¨ă§ăŻăăăžăăăCăC ++ăCďźăJavaăJavaScriptăŞăŠă§ăăăŠăĄăăä¸é ĺźă§ăă
Please don't add new grammar functions for a situation that is not commonly used
ä¸é ćĄäťśćăŻĺŽéăŤăŻé常ăŤäžżĺŠă§ăä¸čŹçăŤä˝żç¨ăăăŚăăžăă
ăăśăăç§ăĺăăăăŞć°ćăĄăćăŁăŚăăžăăăăăăäťăŽĺéĄăŤă¤ăăŚăŻăç§ăŻăç´ç˛ä¸ťçžŠč ăă§ăŻăăăžăăăăăăŻé常ăŤćˇˇäšąăăŚăăžăă
@seebs確ăăŤăăŽćčŚăĺ°éăăăă¨ăŻă§ăăžăăăäťăŽCăăźăšăŽč¨čŞăăćĽăŚăăç§ăăĄăŽĺ¤ăăŤă¨ăŁăŚăăĺăăăăăă¨ăŻă茪ăăżăăăă¨äžżĺŠăăŤăăççŁć§ăćĺłăăžăă GoăŽi++
ăi = i + 1
ăăă忍éŠă§äžżĺŠă§ăŞăççąăç解ă§ăăžăăă§ăăăçšăŤăăăšăă¤ăłăŻăŞăĄăłăăăŤăźăă§ĺéĄăŞăĺ ´ĺăăă¨ăă°for i := 0; i < 5; i++ {...}
ăŽĺ ´ĺăŻç解ă§ăăžăăăăăšăăźăăĄăłăă¨ăăŚăŻĺéĄăăăžăăă ç§ăč¨ăăŤăŻăăžăăŤăç´ç˛ä¸ťçžŠďź :)
ăăŞăăŻä˝ăŤă¤ăăŚčŠąăăŚăăžăăďź i++
ăŻăGoăŽăšăăźăăĄăłăă¨ăăŚĺŽĺ
¨ăŤč¨ąĺŽšăăăžăă 訹ĺŻăăăŚăăŞăăŽăŻăăăă_expression_ă§ä˝żç¨ăăăă¨ă§ăăăăă§ăŻăĺ¤ă¨ĺŻä˝ç¨ăŽä¸ĄćšăčŠäžĄăăăžăă
https://play.golang.org/p/m_LbSbmT1Ar
CăŤăăŞă粞éăăŚăăäşşă¨ăăŚăăăă§ăç§ăŻä¸é ćźçŽĺăăŞăăŚă大ä¸ĺ¤Ťă ă¨ćăăžăăăăăŚăçľćăŽăłăźăăŽćšă弽ăă§ăă Că§ăăč¤ć°ăŽăšăăźăăĄăłăăĺŤăžăăăăăăŻă ăă§ăŞăăăăšăŚăŽăăăăŻă§ä¸ćŹĺź§ă使ç¨ăăăă¨ăŤă¤ăăŚä¸č˛Ťć§ăäżă¤ăăăŤăŞăŁăăŽă¨ĺăăăăŤăăăă使ç¨ăăăă¨ăăăăžăăă
ç§ăŻăăčŞä˝ă§i++
ăćĺłăăăŽă§ăŻăŞăă fmt.Printf("%d", i++)
ăŽăăăŞčĄ¨çžăćĺłăăžăăăăăăŻç§ăăĄăŽä¸é¨ăŤă¨ăŁăŚäžżĺŠă§ăă
ăŻăăăăăŻééăăŞăäžżĺŠă§ăăăăăŞăćăăăŤăäżĺŽăĺ°éŁă§ăă äşşă ăŻăăăééăăäşşă ăŻăăă使ăŁăŚăăăłăźăă誤解ăăžăă ăăăŻăă°ăŽĺĺ ă§ăăăĺç´ăŤăăăťăŠäžĄĺ¤ăăăăžăăă
ăŻăă x++
ăĺŽčĄăăăĺ ´ĺăŻă Printf
ăŽĺĺžăŤçŹčŞăŽăšăăźăăĄăłăă¨ăăŚĺŽčĄăăĺż
čŚăăăăžăă ăăăŻç˘şăăŤăłăšăă§ăă ăăăă䝣ăăăŤăç§ăŻćŹĄăŽăă¨ăĺĺžăăžăă
ăăăŻăăŹăźăăŞăă§ăăăăăŞăčŻăăăŽă ă¨ćăăžăă ăăă°ăŠăăłă°ăŽĺĺżč ĺăăŽčłŞĺăŤçăăăŽăŤćéă貝ăăăŚăăžăăăăăŻăăăĺĽĺşˇçăŞč¨čŞăłăăĽăăăŁăéçşăăćšćłăŽä¸é¨ă ăăă§ăă ç§ăŻăCăłăźăăăăăäşşă ăŽGoăłăźăăŽĺĽčŞçšăŽĺžŽĺŚăŞĺéĄă解ăăŽăŤč˛ťăăćéăăŻăăăŤĺ°ăŞăă垎ĺŚăŞăżă¤ăăăšăŤăăŁăŚĺŽĺ ¨ăŤĺźă辡ăăăăĺéĄăăŻăăăŤĺ°ăŞăăŞăŁăŚăăžăă
確ăăŤăăăăŻCăç解ăžăăŻčŠäžĄăăŚăăŞăäşşă ăăăŽç´ç˛ä¸ťçžŠă§ăŻăăăžăăăăăŽč¨čŞăŻăĺç´ăŤăăăťăŠč¤éă§ăŻăŞăăă¨ăăĺ¤ăăŽäžĄĺ¤ăĺžăăăăŤćăăăăăăăăĺ¤ăăŽä˝ĺ°ăćŽăăăŚăăă¨čăăăăžăăăłăźăăŽč§ŁćăŤăăăťăŠĺ¤ăăŽĺ´ĺă貝ăăăŚăăŞăăăăăă¸ăăŻă§č¤éăŞăă¨ăčĄăŁăŚăăžăă
ç§ăŻăăŞăăŽč¨ăăă¨ăčăăžăăăç§ăŻăăŽăăšăŚăŤă¤ăăŚç˘şäżĄăăŚăăžăăă ăă¨ăă°ă揥ăŻGoă§ćŠč˝ăăăăŞăăŽč°čŤăŤăăă°ăăăăĺŻä¸ăŽč¨ąĺŻăăăć§ćă§ăăăŻăă§ăă
for i:=0; i<5; i=i+1 {
fmt.Printf("%d\n", i)
}
ăă ăăăăä¸čŹçă§ä˝żăć Łăăć§ćă訹ĺŻăăăžăă
for i:=0; i<5; i++ {
fmt.Printf("%d\n", i)
}
ăŞăă ă¨ćăăžăăďź
ç§ăŽč°čŤăŻăĺŽéăŤăŻćĺăŽăăŽă ăă訹ĺŻăăăăšăă§ăăă¨čż°ăšăŚăăžăăă ç§ăŻ2çŞçŽăŽćšă弽ăă§ăăă¤ăłăŻăŞăĄăłăćźçŽĺăŻăšăżăłăă˘ăăłăŽăăŽă§ăăăĺŻä˝ç¨ă§ăŻăŞăăăăăăăˇăłăăŤă§čŞăżăăăăŞăŁăŚăăžăă
ă§ăăŞăăă¨ăŤćł¨ćăăŚăă ăăďź
i := 0
for i++ < 5 {
...
}
Goă§ăŻăĺźăŤĺ˛ăĺ˝ăŚăĺ˘ĺăĺ Ľăăăă¨ăă§ăăŞăăăă§ăă ăä¸äžżăăăăăăăă¨ăăăăžăăă襨çžă誤解ăăăăĺ¤ăŽĺ¤ć´ăŤć°ăĽăăŞăăŁăăăăé ťĺşŚăŻĺşćŹçăŤ100ďź ă¨ăăă§ăăă
ăăăŻç§ăŤăŻăăžăăŤăç´ç˛ă§ă:)ă¨ăŤăăăç§ăŽăă¤ăłăăŻă i=i+1
ă¨i++
ăŽä¸ĄćšăăŤăźăă§č¨ąĺŻăăăŚăăăŽă§ăĺä¸čĄăŽĺŠäžżć§ă弽ăäşşăŽăăăŤ3ă¤ăŽăăŞă¨ăźăˇă§ăłă訹ĺŻăăă¨č¨ăăžăăäžăă°
`` `Go
ăăźăďź=ççŁďź 80ďź8080
as well as the usual:
```Go
Port := 8080
if production {
Port = 80
}
ĺç´ăăŤă¤ăăŚč¨ăă°ăĺč ăŽćšăĺç´ă ă¨ćăăžăă
ăŠăă§ăăďź
Port := production++
ăžă
fmt.Printf("port: %d\n", production++)
ăžăăCă¤ăăŁăŞă ă使ç¨ăăă¨ăGoăăăçăăŞăăžăă ăăăăăŠăĄăăŽĺ ´ĺăăăăŽč¤éăăĺĺ¨ăăĺŻč˝ć§ăăăăăăăăă°ăŠă ĺ ¨ä˝ăç解ăăăŽăĺ°ăéŁăăăŞăă¨ç§ăŻä¸ťĺźľăăžăăçžĺ¨ăăăăăŽĺ˝ąéżăŤĺ¸¸ăŤćł¨ćăăĺż čŚăăăăžăă
ăăĺşćŹçăŞĺ˛ĺŚçăŹăăŤă§ďźĺéĄăŻăăăŞăăŽč§ŁćąşçăăăŽăäžżĺŠăăă弽ăäşşă ăăŽăăŽă§ăŻăŞăă¨ăăăă¨ă§ăă ăăăŻăžăăäťăŽăăšăŚăŽäşşăŤć°¸é ăŤĺźˇĺśăăăžăă 誰ăăäťăŽäşşăŽăłăźăăčŞăžăŞăăă°ăŞăăŞăăăă§ăă ăăăăŁăŚăăăŽăăăŞćŠč˝ăăŞăăă˘ăŚăăăăă¨ăŻă§ăăžăăă 彟ăăŻăăžăăăăăŻç§ăçśćăăăŽăéŁăăăŽă§ăç§ăŻăăă使ç¨ăăŞăăă¨č¨ăăă¨ăă§ăăăăăăŤĺŻžĺŚăăĺż čŚăŻăăăžăăă 彟ăăŻăăă彟ăăŽä¸çăŽä¸é¨ă§ăăăă¨ăŤĺşĺˇăăŚăăžăă äťăŽčŞ°ăăĺăçľăă§ăăĺŻč˝ć§ăŽăăăłăźăăčŞăă¨ăăŻăă¤ă§ăăć°ăăč¤éăăŽăťăăăŤćł¨ćăăĺż čŚăăăăžăă
ĺŽéăŤăŻăăăŽăĺç´ăăăŤăŻăăŞăăŽăłăšăăăăăăžăăăăăŻăĺŽéăŤăŻĺç´ăă§ăŻăŞăăĺźăçăăăă ăă ăăă§ăă ăăăŻă1čĄăŽăăŹăźăšăŹăšif
ăŽăăăŞăăŽă§ăă ç°ĄĺăŞăăăŤčŚăăžăăă2čĄçŽăĺż
čŚă§ăăăä¸ăăŁăăčż˝ĺ ăăăŽăĺżăăĺŻč˝ć§ăăźăă§ăŻăŞăăăăăăăŤä¸ăăŁăăé
罎ăăăăăĺ¤ăăŽćéă夹ăăăžăă
ăăŞăăć¸ăă¨ăŠăăŞăăçĽăŁăŚăăžăďź
Port := production ? 80 : 8080
ć°ćĽĺžďź
Port := production ? 80 : test ? 4080 : 8080
ăăăă誰ăă2ă¤ăŽăăźăŤăćŞăé¸ćă§ăăăă¨ăŤć°ăĽăăăăă俎ćŁăăžăă
Port := mode == "production" ? 80 : mode == "test" ? 4080 : 8080
ăăăŚăăăăŻăăŁă1čĄă§ăăă ?:
ă使ç¨ăăŚăăăăăäşşă
ăŻăăăéˇăăăăă¨ăŻä˝ĺăŞĺŞĺă§ăăă¨ćăăăăă俎ćŁăăăăŻăŞăźăłă˘ăăăăăăăžăăă ăăăŚäťă彟ăăŻăăŽăăăŤăăăă¨ăŤćčłăăŚăăžăă
ăăă§ă ?:
ăŽćä˝ă15ăŽćˇąăă§ăăšăăăăĺŽéăŽăłăźăă§ç˘şčŞă§ăăžăăăăăăŻă羜寞ăŤăŤăăŻă˘ăăăăźăăŤă§ăăĺż
čŚăăăăžăă
ăăăŚăăăăćçľçăŤăŻďźďźćä˝ăŻ15ăŽćˇąăă§ăăšăăăăžăăăăăŻăĺŽéăŽăłăźăă§čŚăăăŽă§ăăă羜寞ăŤăŤăăŻă˘ăăăăźăăŤă§ăăĺż čŚăăăăžăă
ăă ăă15ăŽćˇąăă§ăăšăăăăăif-elseăćä˝ăă羜寞ăŤăŤăăŻă˘ăăăăźăăŤă§ăăĺż čŚăăăăžăă
ăăă確ăăŤă
ăă ăă15ăŽćˇąăăŽăăšăăăăif / elsećä˝ăăăăăŤăăŻă˘ăăăăźăăŤăŤĺ¤ćăăĺ ´ĺăĺä¸čĄă˝ăŞăĽăźăˇă§ăłăŽăĺç´ăăă夹ăŁăăăăŤăŻćăăžăăă
ĺéĄăŻăăăŞăăŽč§ŁćąşçăăăŽăäžżĺŠăăă弽ăäşşă ăăŽăăŽă§ăŻăŞăă¨ăăăă¨ă§ăă ăăăŻăžăăäťăŽăăšăŚăŽäşşăŤć°¸é ăŤĺźˇĺśăăăžă
çĺŽăĺ寞ăŞăŽă§ăç§ăŻăă䝼ä¸ĺ寞ăăăă¨ăŻă§ăăžăăă§ăăďź ăăăčĄăćšćłă課ăăéč¨ăăźă¸ă§ăłăé¸ćăăç§ăŽčŞçąăĺśéăăăŽăŻăĺŽéăŤăŻăăŞăăŽç´ç˛ăŞčŚćšă§ăă ăăŞăăăăă使ăăăăŞăăŽăŞăăăăăŻăăŞăăŽé¸ćă§ăăăç§ăŽé¸ćăĺśéăăŞăă§ăă ăăďź
var a string = "freedom"
ďź$ăŽäťŁăăăŤç縎ăăăa := "freedom"
ăć¸ăăă¨ăé¸ćă§ăăăŽă§ăăă°ăä¸é
䝣ĺ
ĽăŽčŞçąă¨ĺŠäžżć§ăĺż
čŚă§ăă
GoăăźăŤăŻăăłăźăăŽăăŠăźăăăăć¨ćşĺăăăŽăŤćéŠă§ăăăăă ăă§ăäťăŽäşşăŽăłăźăăé常ăŤç°ĄĺăŤčŞăżĺăăă¨ăă§ăăă¨ćăăžăă
ç§ăŤă¨ăŁăŚéčŚăŞăŽăŻăä¸é ăŽĺ˛ăĺ˝ăŚăŻčąčŞăŤčŞçśăŤçżťč¨łăăăăăăčŞăżăăăăç解ăăăăă¨ăăăă¨ă§ăă ăăăäťăŽĺ¤ăăŽč¨čŞă§ă¨ăŚăäşşć°ăăăççąă ă¨ćăăžăă ç§ăŤă¨ăŁăŚăăďź
port := production ? 80 : 8080
...揥ăŽăăăŤĺ¤ćăăăžăďźăăăŽčŁ˝ĺă§ăăďźăŻăăŽĺ ´ĺăăăźăăŻ80ă§ăăăăăăăŽĺ ´ĺăăăźăăŻ8080ă§ăă
ďźăăšăăăăŚăăĺ ´ĺă§ăăĺç´ă§ĺç´ăŞĺä¸ăŽĺ˛ăĺ˝ăŚďź
port := 8080
if production {
port = 80
}
ăăăŻăăăăźăăŻ8080ďźćéďźă§ăăăăăăćŹçŞăŽĺ ´ĺăŻăăăźăă80ăŤĺ¤ć´ăăžăăďź2çŞçŽăŽĺ˛ăĺ˝ăŚďźăŤĺ¤ćăăăžăă
2çŞçŽăŻç§ăŤă¨ăŁăŚééăăŞăčŞăżăăăăăŽă§ăŻăăăžăăă čĄăŁăăă¨ăŻăăăžăăă
ăăăďź ăăăŚďźăăăŻäşşă ăćŠăžăăŚăăžăăç§ăŻäťăŽĺä¸čĄăŽć§ćăŤăćşčśłăăŚăăžăă
ăăŽ1čĄăŽć§ćăŻăč¨çŽăăăŚăăŞăĺćĺ¤ăŤĺŻžăăŚćŠč˝ăăžăă ăăăč¨çŽăăăĺćĺ¤ăŤćĄĺźľăăćšćłăŻç´ ć´ăăăă§ăăăă
v := a; if t { v = b } // non-computed initial value
v := f(); else if t { v = b } // f() not evaluated where t==true
ć˛ăăăă¨ăŤă_go fmt_ăŻăĺ¤ăăŽćç¨ăŞĺä¸čĄć§é ăç ´ĺŁăăžăă ăăŽăăăç§ăŻ_gofmt_ă使ç¨ăăžăăă čŞăżăăăăłăłăăŻăăŞăłăźăă䟸縎ăăă¨ăčŞăżăŤăăăŞăăžăă ăăăăăăăŻćĽçˇă§ăă
ăăŽćŠč˝ăŻăGo 2ăă¸ă§ăăŞăăŻăšăčż˝ĺ ăăĺ ´ĺăä¸é ćźçŽĺăŞăă§ĺŽçžă§ăăžăă
func ternary(type T)(cond bool, vTrue, vFalse T) T {
if cond { return vTrue } else { return vFalse }
}
ăăĄăăăăăă使ç¨ăăăă¨ăŻăçšăŤč¤ć°ăŽternary
ĺźăłĺşăăăăŁăĺ ´ĺăŤăŻăăăă§ăŻăăăžăăă
čŠäžĄăŤé˘ăăŚăŻăăăăŻăłăłăă¤ăŠăŹăăŤă§ăŽćéŠĺă§ăăĺŻč˝ć§ăăăăžăă
ăăŽćŠč˝ăŻăGo 2ăă¸ă§ăăŞăăŻăšăčż˝ĺ ăăĺ ´ĺăä¸é ćźçŽĺăŞăă§ĺŽçžă§ăăžăă
func ternary(type T)(cond bool, vTrue, vFalse T) T { if cond { return vTrue } else { return vFalse } }
ăăĄăăăăăă使ç¨ăăăă¨ăŻăçšăŤč¤ć°ăŽ
ternary
ĺźăłĺşăăăăŁăĺ ´ĺăŤăŻăăăă§ăŻăăăžăăăčŠäžĄăŤé˘ăăŚăŻăăăăŻăłăłăă¤ăŠăŹăăŤă§ăŽćéŠĺă§ăăĺŻč˝ć§ăăăăžăă
ăăăăvTrueă¨vFalseăŻĺ¸¸ăŤčŠäžĄăăăžăă
ternary(3>2, func1(), func2())
func1ďźďźă¨func2ďźďźăŽä¸Ąćšăĺźăłĺşăăăžăă func2ďźďźăčŠäžĄăăĺż čŚăăŞăăă¨ăăłăłăă¤ăŠăźăŻçĽăăă¨ăă§ăăžăăă§ăă...ăăăŚăé˘ć°ĺźăłĺşăă§ăŻăé˘ć°ăŽĺźăłĺşăăŽĺăŤĺźć°ă常ăŤčŠäžĄăăăăă¨ăćĺž ăăăăă¨ăĺşćŹĺĺă§ăăăăăă¨ăŤăăăăăćłĺŽăăăšăă§ăŻăăăžăăăčŞä˝ă func2ďźďźăĺ¤ăčżăăă¨ăŤĺ ăăŚä˝ăăăăăŞăăç§ăăĄăŻăăŽăă¨ăăăăăă§ăăăăăŞăăă°ăăăăŻé常ăŤäşć¸Źä¸ĺŻč˝ă§ç解ăăăŽăéŁăăă§ăăăă
ďźfalseăŽĺ¤ăĺĺă¨ăăŚčŠäžĄăăăăă¨ăćłĺŽăăŚăăŞăĺŽéăŽä¸é
ćźçŽĺă¨ăŻç°ăŞăăžăăďź
`` `
ăăŽćŠč˝ăŻăGo 2ăă¸ă§ăăŞăăŻăšăčż˝ĺ ăăĺ ´ĺăä¸é ćźçŽĺăŞăă§ĺŽçžă§ăăžăă
func ternary(type T)(cond bool, vTrue, vFalse T) T { if cond { return vTrue } else { return vFalse } }
ăăĄăăăăăă使ç¨ăăăă¨ăŻăçšăŤč¤ć°ăŽ
ternary
ĺźăłĺşăăăăŁăĺ ´ĺăŤăŻăăăă§ăŻăăăžăăă
čŠäžĄăŤé˘ăăŚăŻăăăăŻăłăłăă¤ăŠăŹăăŤă§ăŽćéŠĺă§ăăĺŻč˝ć§ăăăăžăăăăăăvTrueă¨vFalseăŻĺ¸¸ăŤčŠäžĄăăăžăă
ternary(3>2, func1(), func2())
func1ďźďźă¨func2ďźďźăŽä¸Ąćšăĺźăłĺşăăăžăă func2ďźďźăčŠäžĄăăĺż čŚăăŞăăă¨ăăłăłăă¤ăŠăźăŻçĽăăă¨ăă§ăăžăăă§ăă...ăăăŚăé˘ć°ĺźăłĺşăă§ăŻăé˘ć°ăŽĺźăłĺşăăŽĺăŤĺźć°ă常ăŤčŠäžĄăăăăă¨ăćĺž ăăăăă¨ăĺşćŹĺĺă§ăăăăăă¨ăŤăăăăăćłĺŽăăăšăă§ăŻăăăžăăăčŞä˝ă func2ďźďźăĺ¤ăčżăăă¨ăŤĺ ăăŚä˝ăăăăăŞăăç§ăăĄăŻăăŽăă¨ăăăăăă§ăăăăăŞăăă°ăăăăŻé常ăŤäşć¸Źä¸ĺŻč˝ă§ç解ăăăŽăéŁăăă§ăăăă
ďźfalseăŽĺ¤ăĺĺă¨ăăŚčŠäžĄăăăăă¨ăćłĺŽăăŚăăŞăĺŽéăŽä¸é ćźçŽĺă¨ăŻç°ăŞăăžăăďź
ăăŽĺ ´ĺă署ĺăŻćŹĄăŽăăăŤăŞăăžăă
func ternary(type T)(cond bool, vTrueFunc, vFalseFunc func() T) T {
if cond { return vTrueFunc() } else { return vFalseFunc() }
}
ç§ăŻčŞăăăăĺžăžăăăăăăŽĺŽčŁ ăŻé常ăŤéăă§ă:(
ăăăŻć¸ĺ°ăŽĺŻč˝ć§ăăăă¨ĺŽŁč¨ăăăăďźhttps://github.com/golang/go/issues/33171#issuecomment-525486967ďźăčż˝ĺ ăŽăłăĄăłăăăăăžăăăăç§ăăĄăçĽăéăăĺŽčłŞçăŤć°ăăăă¨ăŻä˝ăč¨ăŁăŚăăžăăă ?:
ć§ćăäžżĺŠăŞĺ ´ĺăăăăă¨ăŤĺćăăžăăăĺ
¨ä˝ă¨ăăŚăč¨čŞăŤčż˝ĺ ăă䞥ĺ¤ăŻăŞăăăă§ăă
--@ golang/proposalăŽĺ ´ĺ-ăŹăăĽăź
ăăă§ăćąşĺŽăŻăčż˝ĺ ăă䞥ĺ¤ăăŞăăăăŤćăăăăăŤĺşăĽăăŚăăžăăďź
ăžăŁăăéŠăăŞăâŚä¸é
襨çžăŻč¨čŞăŽăç´ç˛ăăăç ´ĺŁăăă ăăăďź
č¨čŞăŽĺ¤ć´ăŻă常ăŤč˛ťç¨ĺŻžĺšćăŽăăŹăźăăŞăă§ăă ć確ăŞçăăŻăăŁăăŤăăăžăăă
ä¸é ćźçŽĺăŽćéăăŞăăă¨ăŤă¤ăăŚăŻç°ĄĺăŞčŞŹćăŻăăăžăăă
襨é˘çăŤăŻăăăŽĺşćŹćŠč˝ăŽĺŽčŁ ăćĺŚăăăă¨ăŻăčŞčť˘čťăéŤéă§ăăă¨ĺąéşă§ăăĺŻč˝ć§ăăăă¨ä¸ťĺźľăăçľćă¨ăăŚăă¤ăŽă˘ăŽčŞčť˘čťăä˝ăăă¨ăćĺŚăăăă¨ăŤäźźăŚăăžăă GoăŽč¨čŞă˘ăźăăăŻăăćŁăăăééăŁăŚăăăăŤă¤ăăŚăŽäźčŠąă§ćˇˇäšąăăäşşăăăăăăăăžăăăăć˝čąĄĺăŽăŹăăŤăä¸ăăŚăč¨čŞăćŠč˝ăŽĺéĄă¨äżĺŽć§ăŽĺéĄăçľăżĺăăăĺż čŚăăăăăŠăăăć¤č¨ăăăă¨ćăăžăă
ćŠč˝XăćŞç¨ăăăŚăłăźăăŽăăşăăŽĺˇŁăŤăŞăĺŻč˝ć§ăăăĺ ´ĺăćŠč˝Xăč¨čŞăăé¤ĺ¤ăăăĺĺăŞççąăŻăăăžăăďź
ç§ăŻăăăăăă§ăăăăăăăŞăă¨ä¸ťĺźľăăžăăăăăčŞä˝ă§ăŻăăăžăăďźăăăŻéčŚă¨éŁăăăŤĺŻžăăŚćŻčźć¤č¨ăăăăšăă§ăă ćŠč˝ăŽéčŚăéŤăăĺŽčŁ ă厚ćăŞĺ ´ĺăŻăćŠč˝ăĺŽčŁ ăăăăăçŚć˘ăăćšćłăć示ăăăă¨ă§ć¸ĺżľăĺăé˘ăăăăăŠăŤăă§çŚć˘ăăăă¨ăă§ăăžăă
ĺŽéăéčŚăĺĺăŤéŤăĺ ´ĺăĺ°éŁă§ăăăăăćĺŚăăćŞăççąă§ăă JavascriptďźES2015ďźăŽclass
ć§ćăŤă¤ăăŚčăăŚăżăžăăăăč¨čŞăŽă˘ăźăăăŻăăŻĺŽéăŤăŻćŠč˝ăčż˝ĺ ăăăăăăžăăă§ăăăć§ćăčż˝ĺ ăăăŽăŻĺŽéăŤăŻăăŞăăŽä˝ćĽă§ăăăăéčŚăŻé常ăŤéŤăăŁăă§ăă 彟ăăŻä˝ăăăžăăăďź ĺ˝źăăŻć§ćăčż˝ĺ ăăžăăăăăŽćŠč˝ăćăžăŞăçľçšăŻăăŞăłăăŁăłă°ăŹăăŤă§ć§ćăç°ĄĺăŤçŚć˘ă§ăăăă¨ăĺĺăŤç解ăăŚăăžăăă
ăăăŻăéčŚăčăăă¨ăä¸é
ćźçŽĺăŽéŠĺăŞč§Łćąşçă§ăă ăăăăŽć¸ĺżľăĺăé˘ăăă¨ăŻéŠĺă§ăăăăăć§ćĺŻč˝ăŞćšćłă§ăăăă解湺ăăăă¨ăćăçăŤăăŞăŁăŚăăžăă ăćŞä˝żç¨ăŽĺ¤ć°ăă¨ăŠăźăŽăăăŤăăăăă°ăŠă ăĺŽčĄăăăĺăŤăăăŽ1ă¤ă俎ćŁăăĺż
čŚăăăăăŹăšăĺć˘ăăăă¨ăăĺąćŠăŤéĽăĺéĄăŤă¤ăăŚăăĺăăă¨ă辡ăăăŻăă§ăă ďźăŻăă _
ă˝ăŞăĽăźăˇă§ăłăăăăă¨ăŻçĽăŁăŚăăžăăăăăă§ăăăăć§ćĺŻč˝ăŤăăĺż
čŚăăăĺ ´ĺă§ăďź
č¨čŞăŻăĺŽéăŤăăŽč¨čŞă使ç¨ăăŚăăĺťşçŻĺŽśă¨ăŽćˇąăă¤ăŞăăăăŞăăŚăăăăăăçĽăŁăŚăăĺ°ć°ăŽĺťşçŻĺŽśăŽçŁçŠă§ăăăšăă ă¨čăăăŽăŻčޤăă§ăă č¨čŞăŽă˘ăźăăăŻăăééăŁăŚăăăă¨ă訟ćăăăăăŽăăźăżăŽčŚćąăŻç§°čłăŤĺ¤ăăžăăăăăŽăăăŞĺćăŻä¸čŚă§ăă ăăŽăšăŹăăăŽăľă¤ăşăčŚăŚăă ăăăéčŚăăăăžăă
ćŽĺżľăŞăăăéčŚăçĄčŚăăăă¨ă獜ĺ製ĺăŤă¤ăŞăăăŽă§ăăăăŽĺ ´ĺăăăăč¨čŞăĺĺ˛ăăćšćłă§ăă ăăŠăźăŻăăăă§ăăďź ďźć確ăŤăăăăăŤďźăăăŻäşć¸Źă§ăăăč
ĺ¨ă§ăŻăăăžăăă
ç§ăŻééăăŞăč¨čŞăăăŠăźăŻăăŚăăžăăăďź
@dashăăŽĺéĄăŻăŻăăźăşăăăŚăăăč°čŤăăă¤ăăăŻăăăžăăăăä¸ĺŽčĄ¨ç¤şă§ăăă¨ç§ă俥ăăŚăăăă¨ăč¨ćŁăăăă¨ćăăžăă ăăŞăăŻăGoăă...ĺŽéăŤč¨čŞă使ç¨ăăŚăăĺťşçŻĺŽśă¨ăŽćˇąăă¤ăŞăăăăŞăăŚăăăăăăçĽăŁăŚăăĺ°ć°ăŽĺťşçŻĺŽśăŽčŁ˝ĺăă§ăăč¨čŞă§ăăăă¨ăć示ăăŚăăžăă ăăăŻç˘şăăŤçĺŽă§ăŻăăăžăăă Goăăźă ăŽĺ ¨ĺĄăăăăŚç˘şăăŤăă˘ăźăăăŻăăăŻćŻćĽGoăłăźăăä˝ćăăŚăăă2007嚴䝼ćĽăăŞăăŽéăä˝ćăăŚăăžăăăžăăăťăźćŻćĽăäťăŽGoăŚăźăśăźă¨ăăĺăăăŚăăžăă ç§ăăĄăŻăĺŽéăŤăăŽč¨čŞă使ç¨ăăŚăăäşşă ăă¤ăžăç§ăăĄă¨ăă¨ăăăç§ăăĄă¨ćˇąăă¤ăŞăăăćăŁăŚăăžăă
ç§ăŻĺťşçŻĺŽśă§ăŻăăăžăăăç§ăŻăăŽč¨čŞăĺ¤ç¨ăăŚăăžăăăžăăä¸é ćźçŽĺăĺŠç¨ĺŻč˝ă§ăăă°ăăťăźç˘şĺŽăŤä˝żç¨ăăçśćłăŤé ťçšăŤééăăžăă ăăăŚăĺžă§ăłăźăăčŞăă§ăăăăŤă¤ăăŚčăăžăăăăăŤăŞăăŽăŻăăăăă§ăă YMMVă
ăăŽăăăŞăă¨ăăćŞä˝żç¨ăŽĺ¤ć°ăŽčŚĺăăć§ćĺŻč˝ăăŤăăăă¨ă§ăéçşč ă¨ăăŚăŽç§ăŽçć´ťă漽ăŤăŞăă¨ăŻćăăžăăă éçşč ă¨ăăŚăŽç§ăŽäşşçăŻéŁăăăŞăă¨ćăăžăă
ç§ăĺťşçŻĺŽśă§ăŻăăăžăăăç§ăăăŽč¨čŞăĺ¤ç¨ăăŚăăžăăăžăăä¸é ćźçŽĺăĺŠç¨ĺŻč˝ă§ăăă°ăăťăźç˘şĺŽăŤä˝żç¨ăăçśćłăŤé ťçšăŤééăăžăă ăăăŚăĺžă§ăłăźăăčŞăă§ăăăŽäžżĺŠăŞćŠč˝ăĺŚĺŽăăĺ°ć°ăŽäşşă ăĺŞăăžăďź
ăăă§ăĺăă§ăăăç§ăŻGoăćŻćĽä˝żç¨ăăŚăăăćŻćĽĺż čŚăŤăŞăăžăăăăăŤăăăăłăźăăăăć確ăŤăŞăăăăăŤĺ ç˘ăŤăŞăă¨ç˘şäżĄăăŚăăžăă
ăĄăŞăżăŤăăŞăŻăźăFAQĺçăăŽććĄă§
ç°Ąć˝ăŤăăăăăŤăćĄäťśăšăăźăăĄăłăďźĺźă§ăŻăŞăďźăŽäťŁăăăŤä¸é ćźçŽĺă使ç¨ăăžăă
ăç°Ąć˝ăăăŻćŞăăă¨ăŽăăăŤč¨ăăăžăă ç°Ąć˝ăăŻčŞăżăăăăĺŠăăžăă čŞăżĺăĺŻč˝ăŞăłăźăăŽĺ ¨ä˝çăŞčăćšăŻăăăăĺŽéăŤčĄăăă¨ăŽăčŚçšăŤăžăŁăăăă§ăăă¨ăăăă¨ă§ăă ăăăŻćŹçŞç°ĺ˘ă§ăăăăăăăźăăŤ8080ăžăăŻ-1ă役éżăăăăłăźăăŽĺžĺă§80ăŤĺ˝ąéżăä¸ăăăŽă¨ăŻç°ăŞăăžăă
Goăăźă ăä¸č˛ŤăăŚĺ寞ăăŚăăă ăă§ăŞăăďźçľľćĺć缨ă§ĺ¤ćăăă¨ďźăłăăĽăăăŁăŽç´60ďź ăĺ寞ăăŚăăăăăGoăä¸é ćźçŽĺăĺĺžăăĺŻč˝ć§ăŻăťă¨ăăŠăŞăă¨ćăăžăă
ăă ăăGoăćçľçăŤă¸ă§ăăŞăăŻăšăĺĺžăăĺ ´ĺăăăăăăłăłăă¤ăŠăŽćéŠĺăŤăăĺ ´ĺăé¤ăăŚăç羥ăçşçăăŞăăŤăăăăăăăăăźă ăŻć¨ćşăŠă¤ăăŠăŞăŤä¸é é˘ć°ăčż˝ĺ ăăăă¨ăçĺŁăŤć¤č¨ăăĺż čŚăăăă¨ćăăžăă
ăăăčĄăăŞăĺ ´ĺăăă税ăŽç¨čŞćźçŽĺ/é˘ć°ďźç§čŞčşŤăĺŤăďźăćŻćăă40ďź ăŻăăăăŤçŹčŞăŽćźçŽĺ/é˘ć°ăä˝ćăăžăă ăăăŤăăăç°ăŞăĺĺďźCondăIffăIifăPickăChooseăTernăŞăŠďźăé¸ćăăăç°ăŞăĺĺăŽăăăąăźă¸ăŤĺŤăžăăăăăčŞăżăăăă¨ăĄăłăăăłăšăŽćŞĺ¤˘ăçăžăăžăă
䝣ăăăŤć¨ćşăŠă¤ăăŠăŞăŤčż˝ĺ ăăăĺ ´ĺăăăŽćçĺăŻçşçăăžăăăčłćăăäşşăŻčŞ°ă§ăć¨ćşăăźă¸ă§ăłă使ç¨ăăăăăć°ăŤĺ ĽăăŞăäşşăŻĺ°ăŞăă¨ăăăăä˝ăăăăăçĽăŁăŚăăăăă§ăă
func ifThenďźcondition boolăifTrueăifelse interface {}ďźinterface {} {
ćĄäťś{
ifTrueăčżă
} ăăăăŞă㨠{
ifelseăčżă
}
}
ä¸é ćźçŽĺăŤé˘ăăăăŽč°čŤăŻăăĺĽăŽĺéĄăŽč§ŁćąşçăăŤĺ¸°çăăĺ ´ĺăăăă¨ç§ăŻćăăŚăăžăă
é˘ć°ăŤăăăŠăŤăĺ¤ăăŞăăăă揥ăŽăăăŤăłăźăăč¨čż°ăăžăă
if elementType == "" {
elementType = "Whatever"
}
// times X ...
ĺç´ăŤăăă揥ăŽăăăŤăăăäşşă¨ä¸çˇăŤďź
elementType = elementType == "" ? "Whatever" : elementType
// times X ...
ăžăăŻ
func DoDesign( elementType string = "Whatever" )
ăăăăŁăŚăä¸é ćźçŽĺăŻăäťăŽĺéĄăŤé˘éŁăăĺéĄă解湺ăăăă¨ăăžăă ăăć¨ćşçăŞGoăăźă¸ă§ăłăŻç˘şăăŤčŞăżăăăăŞăŁăŚăăžăăă4ă¤ăžăăŻ5ă¤ăçśăăŚĺŚçăăŚăăă¨ăčŞăżăŤăăăŞăăžăă
@ArnoldoRă示ăăăăŤăäşşă ăăžăăžăçŹčŞăŽăă˝ăŞăĽăźăˇă§ăłăăć§çŻăĺ§ăăă¨ăăŤčŞăżăăăăćäžăăăăăŠăăăŤă¤ăăŚăçĺăăăăžăă JavascriptăćŠăžăăĺéĄăŽ1ă¤ăŻăćŠč˝ä¸čśłăŽăă˝ăŞăĽăźăˇă§ăłăăŽĺ˘ĺ ă§ăăăăăŽçľćăä¸é¨ăŽăăă¸ă§ăŻăă§NPMăăăąăźă¸ă塌ĺłăŤă¤ăłăăźăăăăžăăă SqlXăŽăăăŞäşşć°ăŽăăăăăąăźă¸ăŻăGoăŽćŠč˝ăä¸čśłăăŚăăăă¨ă示ăăŚăăžăă
čŞăżăăăăŻ1ă¤ăŽăă¨ă§ăă ăăăăĺ¤ăăĺ°ăŞăă20čĄăć¸ăăŞăăă°ăŞăăŞăăă¨ăŻă5čĄăŤĺŤăžăăĺŻč˝ć§ăăăăžăă ăăăŻăŠăăŞăăă¸ă§ăŻăăŤăçŠăżéăŞăŁăŚăăăžăă
ĺéĄăăä¸é ă誤ç¨ăăŚčŞăżĺăä¸ĺŻč˝ăŞăłăźăăçšăŤăăšăăăăä¸é ćźçŽĺăä˝ćăăĺŻč˝ć§ăăăĺ ´ĺăŻăăăăŤĺśéăč¨ăăžăă ä¸é ćźçŽĺăă1ăŹăăŤăăŽăżăŤĺśéăăăŚăăŚăăłăłăă¤ăŠăźă桹ăăŹăăŤăŽćźçŽĺăăăăŞăăć˘ăăă°ăăăŽăăăăŻăŽăťă¨ăăŠăŽäşşăŻĺéĄăăŞăă¨ćăăžăă
ă¨ăŤăăăäşşă ăă¸ă§ăăŞăăŻăšăćŞç¨ăăŚăăăăĺŽčŁ ăăăă¨ăăŚăăăă¨ăç§ăăĄăŻçĽăŁăŚăăžăă ă ăăăăŞăĺ Źĺźăăźă¸ă§ăłăćäžăăŞăăŽă§ăăăăăăŞăăăŞăăŻăăăŽäšąç¨ăĺśéăăăă¨ăă§ăăžăă ăăăăä¸č¨ăŽăăăŞăŻă¤ăŤăăŞé˘ć°ăŻăJavascriptăłăăĽăăăŁă§čŚăăăăŤăćéăŽçľéă¨ă¨ăăŤäşşć°ăéŤăžăă§ăăăă ăăăŚăéçĽăăăăŤăé˘ăăă¨ăăăăăĺśĺžĄăăăă¨ăŻăăăăăžăăă
ćăĺčăŤăŞăăłăĄăłă
ăăŽäžăŻă1ćĺç¨ĺşŚăăăŞăăă¨ăčăăă¨ăăĄăăŁă¨ćŞăäžă ă¨ćăăžăăç§ăŽćčŚă§ăŻăĺŽéăŤăŻčŞăżăŤăăă§ăďźďźďź "s"ďź ""ďź
ăăăăç§ăŻä¸é ćźçŽĺăčż˝ĺ ăăĺż čŚăăăăă¨ăŤĺćăăžăă
ăăăŚç§ăŻĺäşşçăŤç§ăŤĺ˝šçŤă¤ă§ăăăăăă¤ăăŽäžăä˝ăăžăăăăăăŚç§ăŻăăŞăăăăăăŽăăă¤ăăŤăăăăé˘äżăăăă¨ăă§ăăă¨ćăăžăă
const PORT = production ? 80 : 8080
ăă䝼ĺ¤ăŽ
fmt.Printf("Running %s build!", production ? "Production" : "Debug") .. etc
ăăăăăĄăăăä¸é ćźçŽĺăĺŚăśăŽăŻé常ăŤĺ°éŁă§ăă