Go 方法案例练习

    技术2023-06-14  89

    方法案例练习

    编写结构体(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) }

     

    Processed: 0.017, SQL: 9