package main
import (
"fmt"
"io/ioutil"
)
func main() {
//branch()
//outil()
//otila()
//ioutils()
//ioutilss()
//block()
const (
a int = 100
b int = 250
)
fmt.Printf(switch3(60))
//fmt.Println(test1Switch(a, b ,"+"))
}
//条件
func branch() {
const sum int = 10
var number int = 100
if number > 290 {
fmt.Println("success")
} else if number < 110 {
fmt.Println("ssssss")
} else {
fmt.Println("error")
}
}
func outil() {
const (
filename = "abc.txt"
)
//ioutil.ReadFile 读取文件,并返回文件内容 成功返回 nil 而不是返回EOF
contents, err := ioutil.ReadFile(filename)
if err != nil {
fmt.Println(err)
} else {
fmt.Printf("%s\n", contents)
}
}
func otila() {
const filename = "abc.txt"
contents, message := ioutil.ReadFile(filename)
if message == nil {
fmt.Printf("%s\n", contents)
} else {
fmt.Println(message)
}
}
func ioutils() {
const (
//文件路径在根目录
filename = "abc.txt"
)
var contents, message = ioutil.ReadFile(filename)
if message != nil {
fmt.Println(message)
} else {
fmt.Printf("%s\n", contents)
}
}
//if 语句连着写 可以用 ;号隔离
func ioutilss() {
filename := "abc.txt"
if contents, message := ioutil.ReadFile(filename); message != nil {
fmt.Println(message)
} else {
//%s字符串
fmt.Printf("%s\n", contents)
}
//作用域 在if的block中 在外不可调用
//fmt.Println(contents)
}
func block() {
filename := "abc.txt"
if contents, message := ioutil.ReadFile(filename); message != nil {
fmt.Println(message)
} else {
fmt.Printf("%s\n", contents)
}
}
//方法也必须加上类型
func switchs(a int, b int, ops string) int {
var c int
switch ops {
case "+":
c = a + b
case "-" :
c = a - b
case "*" :
c = a * b
case "/" :
c = a / b
default :
panic("unsupported operator: " + ops)
}
return c
}
func testSwitch(a int, b int, opt string) int {
var c int
switch opt {
case "+" :
c = a + b
case "-" :
c = a - b
case "*" :
c = a * b
case "/" :
c = a / b
}
return c
}
//
func test1Switch(a int, b int, opt string ) int {
var c int
switch opt {
case "+" :
c = a + b
case "-" :
c = a - b
case "*" :
c = a * b
case "/" :
c = a / b
default :
panic("失败" + opt)
}
return c
}
func switch3 (num int) string {
var result string
switch {
case num < 0 || num > 100 || num < 49:
panic("error:"+result)
case num == 50 :
result = "A-50"
case num == 60 :
result = "B-60"
case num == 70 :
result = "C-70"
case num == 80 :
result = "D-80"
}
return result
}
if条件里可以赋值
if的条件里赋值的变量作用域就是这个if语句里
switch 自动break 除非使用fallthrough panic 类似于报错 中断程序运行
方法返回也必须定义类型 !!!
switch后可以没有表达式