Go Walk教程 - 流程控制( switch)

Posted gobuild

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Go Walk教程 - 流程控制( switch)相关的知识,希望对你有一定的参考价值。

Go的 switch 非常灵活,表达式不必是常量或整数,执行的过程从上至下,直到找到匹配项,不要break;

var score =98
var result string
switch score/10 {
  case 9,10:result="优秀"
  case 8:result="良好"
  case 6,7:result="及格"
  default:result="不及格"
}

switch 后面的表达式甚至不是必需的  

var score =-1
var result string
switch  {
  case score<0:result="负数"
  case score=0:result="零"
  case score>0:result="正数"  
}

  利子:

package main
import (
	"log"	
)
import (
	"github.com/lxn/walk"
	. "github.com/lxn/walk/declarative"
)
var le *walk.LineEdit
var sport,maths,english *walk.RadioButton
func main() {
	if _, err := MainWindow1.Run(); err != nil {
		log.Fatal(err)
	}
	log.Fatal(Bind("enabledCB.Checked"))
}
var MainWindow1=MainWindow{
  Title:   "MainWindow",
  MinSize: Size{300, 200},
  Layout:  VBox{},   
  Children: widget,
}

var widget=[]Widget{
  LineEdit1,
  RadioButtonSport, 
  RadioButtonMaths,
  RadioButtonEnglish,
  PushButtonOK,
}

var LineEdit1=LineEdit{  
  AssignTo: &le,
}

var RadioButtonSport=RadioButton{
  AssignTo: &sport,
  Text:    "体育系",  
}
var RadioButtonMaths=RadioButton{
  AssignTo: &maths,
  Text:    "数学系", 
}
var RadioButtonEnglish=RadioButton{
  AssignTo: &english,
  Text:    "英语系", 
}
var PushButtonOK=PushButton{
  Text: "OK",
  OnClicked:OK_Clicked,
}
func OK_Clicked(){  
  switch {
    case english.Checked():
      le.SetText("英语系")
    case sport.Checked():
      le.SetText("体育系")
    case maths.Checked():
      le.SetText("数学系")
  }
}

  

RadioButton为单选按钮,可以分组,

radiobuttongroup和radiobuttongroupbox

以上是关于Go Walk教程 - 流程控制( switch)的主要内容,如果未能解决你的问题,请参考以下文章

go——流程控制

Go语言中的流程控制

go语言学习笔记 — 基础 — 控制流:流程控制

[GO专栏-6]Go语言流程控制

Go语言--流程控制

Go语言:Windows下最能凑合用的桌面GUI库(lxn/walk 起步教程)