1. // 方法练习
    2. package main
    3. import "fmt"
    4. type Test struct {
    5. }
    6. // 编写 Test 的方法
    7. func (t Test) print() {
    8. for i := 0; i < 10; i++ {
    9. for i := 0; i < 8; i++ {
    10. fmt.Printf("*")
    11. }
    12. fmt.Println()
    13. }
    14. }
    15. // 方法接收参数
    16. func (t Test) print2(m int, n int) {
    17. for i := 0; i < m; i++ {
    18. for i := 0; i < n; i++ {
    19. fmt.Printf("*")
    20. }
    21. fmt.Println()
    22. }
    23. }
    24. // 方法接收参数,并返回值
    25. func (t Test) print3(m float64, n float64) float64 {
    26. return m * n
    27. }
    28. // 指针接收者 方法里判断奇数偶数
    29. func (t *Test) JudgeNum(n int) {
    30. if n%2 == 0 {
    31. fmt.Printf("%v是偶数 \n", n)
    32. } else {
    33. fmt.Printf("%v是奇数 \n", n)
    34. }
    35. }
    36. // 方法接收参数,并打印指定字符
    37. func (t Test) print4(m int, n int, sign string) {
    38. for i := 0; i < m; i++ {
    39. for i := 0; i < n; i++ {
    40. fmt.Print(sign)
    41. }
    42. fmt.Println()
    43. }
    44. }
    45. // 实现一个四则运算的方法
    46. type Calc struct {
    47. Num1 float64
    48. Num2 float64
    49. }
    50. func (calc *Calc) CalcMethod(opt string) float64 {
    51. var res float64
    52. switch opt {
    53. case "+":
    54. res = calc.Num1 + calc.Num2
    55. case "-":
    56. res = calc.Num1 - calc.Num2
    57. case "*":
    58. res = calc.Num1 * calc.Num2
    59. case "/":
    60. res = calc.Num1 / calc.Num2
    61. default:
    62. fmt.Println("运算符输入有误")
    63. }
    64. return res
    65. }
    66. func main() {
    67. fmt.Println("hello")
    68. var t Test
    69. t.print()
    70. // 方法传值
    71. var t2 Test
    72. t2.print2(2, 5)
    73. // 方法传值并返回
    74. var t3 Test
    75. multiply := t3.print3(2.2, 5.5)
    76. fmt.Println("multiply = ", multiply)
    77. // 实现方法判断奇数还是偶数
    78. var t4 Test
    79. t4.JudgeNum(4)
    80. (&t4).JudgeNum(5)
    81. // 打印指定字符
    82. var t5 Test
    83. t5.print4(3, 6, "$")
    84. // 四则运算
    85. var calc Calc = Calc{
    86. Num1: 10,
    87. Num2: 2,
    88. }
    89. res := calc.CalcMethod("/")
    90. fmt.Println("res = ", res)
    91. }