【一Go到底】第三十九天---方法练习题

43 阅读1分钟

持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第38天,点击查看活动详情

一、习题一

编写结构体(MethodUtils),编写一个方法,方法不需要参数,在方法中打印一10*8的矩形,在main方法 中调用该方法。

package main

import "fmt"

/*编写结构体(MethodUtils),编写一个方法,方法不需要参数,
在方法中打印一10*8的矩形,在main方法 中调用该方法。
*/
type MethodUtils struct {
}

func (stars MethodUtils) Print() {
	for i := 0; i < 10; i++ {
		fmt.Println("********")
	}
}

func main() {

	stars := MethodUtils{}
	stars.Print()
}

二、习题二

编写一个方法,提供m和n两个参数,方法中打印一个m*n的矩形

package main

import "fmt"

/*编写一个方法,提供m和n两个参数,方法中打印一个m*n的矩形
 */
type MethodUtils struct {
}

func (stars MethodUtils) Print(m int, n int) {
	for i := 1; i <= m; i++ {
		for j := 1; j <= n; j++ {
			fmt.Print("*")
		}
		fmt.Println()
	}
}

func main() {

	stars := MethodUtils{}
	stars.Print(5, 15)
}

三、习题三

编写一个方法算该矩形的面积(可以接收长len,和宽width), 将其作为方法返回值。在main方法中调用该方法,接收返回的面积值并打印。

package main

import "fmt"

/*编写一个方法算该矩形的面积(可以接收长len,和宽width),
将其作为方法返回值。在main方法中调用该方法,接收返回的面积值并打印。
*/
type MethodUtils struct {
}

func (stars MethodUtils) area(len float64, width float64) float64 {
	return len * width
}

func main() {

	stars := MethodUtils{}
	// 矩形面积 =  200
	fmt.Println("矩形面积 = ", stars.area(10, 20))
}

四、习题四

编写方法:判断一个数是奇数还是偶数

package main

import "fmt"

/*编写方法:判断一个数是奇数还是偶数
 */
type MethodUtils struct {
}

func (nums *MethodUtils) judge(n int) {
	if n%2 == 1 {
		fmt.Printf("%v 是 奇数", n)
	} else {
		fmt.Printf("%v 是 偶数", n)
	}
}

func main() {

	nums := MethodUtils{}
	// 6 是 偶数
	nums.judge(6)
}


五、习题五

根据行、列、字符打印对应行数和列数的字符,比如:行: 3,列: 2,字符,则打印相应的效果

package main

import "fmt"

/*根据行、列、字符打印对应行数和列数的字符,比如:行: 3,列: 2,字符,则打印相应的效果
 */
type MethodUtils struct {
}

func (str MethodUtils) Print(x int, y int, words string) {
	for i := 1; i < x; i++ {
		for j := 1; j < y; j++ {
			fmt.Print(words)
		}
		fmt.Println()
	}
}

func main() {

	str := MethodUtils{}
	// 矩形面积 =  200
	str.Print(10, 20, "*")
}

六、习题六

定义小小计算器结构体(Calcuator),实现加减乘除四个功能

  1. 实现形式1:分四个方法完成:
  2. 实现形式2:用一个方法搞定
package main

import "fmt"

/*编写一个方法算该矩形的面积(可以接收长len,和宽width),
将其作为方法返回值。在main方法中调用该方法,接收返回的面积值并打印。
*/
type Calcuator struct {
	Num1 float64
	Num2 float64
}

func (calc *Calcuator) Add() float64 {
	return calc.Num1 + calc.Num2
}
func (calc *Calcuator) Sub() float64 {
	return calc.Num1 - calc.Num2
}
func (calc *Calcuator) Mul() float64 {
	return calc.Num1 * calc.Num2
}
func (calc *Calcuator) Div() float64 {
	return calc.Num1 / calc.Num2
}

// 一个方法

func (calc *Calcuator) Calc(operator byte) float64 {
	res := 0.0
	switch operator {
	case '+':
		res = calc.Num1 + calc.Num2
	case '-':
		res = calc.Num1 - calc.Num2
	case '*':
		res = calc.Num1 * calc.Num2
	case '/':
		res = calc.Num1 / calc.Num2
	default:
		fmt.Println("输入有误")

	}
	return res
}

func main() {

	calc := Calcuator{}

	calc.Num1 = 10.0
	calc.Num2 = 20.0
	// 调用一个方法实现
	fmt.Printf("一个方法实现 ===> %v", calc.Calc('/'))
}