方法案例练习
- 编写结构体(MethodUtils),编程一个方法,方法不需要参数,在方法中打印一个 10*8 的矩形,在 main 方法中调用该方法。
type MethodUtils struct { //字段... } //给MethodUtils编写方法 func (mu MethodUtils) Print() { for i := 1; i <= 10; i++ { for j := 1; j <= 8; j++ { fmt.Print("*") } fmt.Println() } } func main() { var mu MethodUtils mu.Print() }
- 输出结果:
- 编写一个方法,提供 m 和 n 两个参数,方法中打印一个 m*n 的矩形
type MethodUtils struct { //字段... } func (mu MethodUtils) Print2(m int, n int) { for i := 1; i <= m; i++ { for j := 1; j <= n; j++ { fmt.Print("*") } fmt.Println() } } func main() { var mu MethodUtils mu.Print2(3,4) }
- 输出结果:
- 编写一个方法算该矩形的面积(可以接收长 len,和宽 width), 将其作为方法返回值。在 main方法中调用该方法,接收返回的面积值并打印。
type MethodUtils struct { //字段... } func (mu MethodUtils) area(len float64, width float64) (float64) { return len * width } func main() { var mu MethodUtils areaRes := mu.area(3.87, 9.45) fmt.Println("面积为=", areaRes) }
- 输出结果:
- 编写方法:判断一个数是奇数还是偶数
type MethodUtils struct { //字段... } func (mu *MethodUtils) JudgeNum(num int) { if num % 2 == 0 { fmt.Println(num, "是偶数..") } else { fmt.Println(num, "是奇数..") } } func main() { var mu MethodUtils mu.JudgeNum(11) }
- 输出结果:
- 根据行、列、字符打印 对应行数和列数的字符,比如:行:3,列:2,字符*,则打印相应的效果
type MethodUtils struct { //字段... } func (mu *MethodUtils) Print3(n int, m int, key string) { for i := 1; i <= n ; i++ { for j := 1; j <= m; j++ { fmt.Print(key) } fmt.Println() } } func main() { var mu MethodUtils mu.Print3(6, 8, "@ ") }
- 输出结果:
- 定义小小计算器结构体(Calcuator)
- 实现加减乘除四个功能
- 实现形式1:分四个方法完成: , 分别计算 + - * /
- 实现形式2:用一个方法搞定, 需要接收两个数,还有一个运算符
- 实现形式1:
type Calcuator struct{ Num1 float64 Num2 float64 } func (calcuator *Calcuator) getSum() float64 { return calcuator.Num1 + calcuator.Num2 } func (calcuator *Calcuator) getSub() float64 { return calcuator.Num1 - calcuator.Num2 } //.. func main(){ var calcuator Calcuator calcuator.Num1 = 1.2 calcuator.Num2 = 2.2 fmt.Printf("sum=%v\n", fmt.Sprintf("%.2f",calcuator.getSum())) fmt.Printf("sub=%v\n",fmt.Sprintf("%.2f",calcuator.getSub())) }
- 输出结果:
- 实现形式2:
func (calcuator *Calcuator) getRes(operator byte) float64 { res := 0.0 switch operator { case '+': res = calcuator.Num1 + calcuator.Num2 case '-': res = calcuator.Num1 - calcuator.Num2 case '*': res = calcuator.Num1 * calcuator.Num2 case '/': res = calcuator.Num1 / calcuator.Num2 default: fmt.Println("运算符输入有误...") } return res } func main(){ var calcuator Calcuator res := calcuator.getRes('*') fmt.Println("res=", res) }