Go语言练习:计算并打印输出两个圆的面积之和

小知识,大挑战!本文正在参与“程序员必备小知识”创作活动

前言

最近在学习Go语言,参加了极客时间的三天入门go语言体验课,这里打卡记录下每天的学习作业,后面也会将自己学习go的过程及笔记分享出来,如果你也对go和python感兴趣,欢迎关注我,点赞,留言,一起成长。

基本环境

系统:macOS
Go版本:go version go1.17.1 darwin/amd64
开发工具:VS Code

开始作业

首先你得运行好下面的代码,这也是我在安装好go环境和vc code后写的第一段代码:hello world。

package main
import "fmt"

func main() {
  /* 程序员的第一行代码 */
	fmt.Println("Hello, World!")
}
复制代码

我们先直接上本题的解答代码,虽然我这里将代码全部给你了,另外也写了很多注释,也许你一看就懂了,但是我更希望你能在看懂代码逻辑后,一个个字符在你自己的环境中实践一遍,这样对你的学习会更有帮助,你还可以创新:

// 表示当前文件 所在包是main
package main

// 表示导入包,和Python中导包类似
import (
	"fmt"
	"math"
)

/* 根据半径计算圆的面积 */
func calculate_circle_area(r float64) float64 {
	return math.Pi * math.Pow(r, 2)
}

func main() {
	/* 计算两个圆的面积和 */
	// 圆的半径
	r1 := 3.0
        r2 := 5.0
	// 计算两个圆的面积
	circle_area1 := calculate_circle_area(r1)
        circle_area2 := calculate_circle_area(r2)
	// 打印出两个圆的面积和
        // %.1f 精确到小数点后一位 %.3f 精确到小数点后三位 
	fmt.Printf("半径为%.1f和半径为%.1f的两个圆的面积和为:%.3f", r1, r2, circle_area1+circle_area2)

}
复制代码

image.png

代码解析

首先是设置package,这是必须的,然后我们导入了其他包,fmt你应该有所了解了,println就是它里面的,math是新导入的一个包,如果你有学过其他编程语言,应该就会有所了解,不了解也没关系,直接浏览器搜索go math包用法即可看到很多介绍,善用浏览器也会使你学习起来更快,在这个程序中我们主要用到了math包中的Pi属性和Pow函数,用于计算圆的面积。

接着,我们定义了一个函数calculate_circle_area,用于计算并返回圆的面积,我们只需传入圆的半径即可,其实这里也没必要专门定义一个函数(功能不难,只有一句代码),我这里之所这样是因为我想学习go中的函数是怎样定义并调用的,向前学习的思维非常重要。

从上面例子中我们可以看到,go中函数定义可以概括为以下模型:

func 函数名([参数名 参数类型, ...]) [返回值类型]{
    函数主体
    return 返回数据
}
复制代码

与python相比,除了定义函数的关键词不同,参数需要指定类型外,返回值也需要指定类型,这个我觉得对于初学者来说是个坑,至少对于我来说是,那么我是如何解决这个问题的呢?浏览器搜索go 函数定义调用,对的,善用浏览器,可以提高学习效率。

最后就是main函数了,在main函数里我们定义了两个变量r1和r2,go中定义变量也可以不用指定变量类型,就像代码中那样r1 := 3.0即可,go 会根据3.0的类型帮我们定义一个变量r1,并初始化值为3.0,简便。

后面就是传入参数,调用函数分别计算两个圆的面积了,然后就是输出两个圆的面积和,注意,这里我们打印用的是Printf,而不是Println,这是因为Printf支持格式化输出,具体两者区别大家可以去浏览器搜索了解,或者从书中、学习视频中了解,解决问题的过程一定会让你特别开心和有成就感,同时也会让知识记忆也会更加牢固。

今天的分享先到这里啦,期待下次分享~欢迎留言、点赞互动,给个关注不迷路~