911 次浏览
装饰器函数模式主要在 Python 和 JavaScript 中出现,但我们也可以在 Golang 中使用它。它是一种模式,我们可以通过包装现有函数来添加自己的功能。由于 Golang 中的函数被视为一等公民,这意味着我们可以像处理变量一样将它们作为参数传递。示例 1让我们从一个非常简单的例子开始,了解将函数作为参数传递给现有函数的基本情况。请考虑以下代码。package main import ( ... 阅读更多
627 次浏览
Golang 为我们提供了不同的方法来打印自定义错误。我们将在本文中探讨两种这样的方法。第一种方法需要我们使用 error.New() 函数,该函数将创建一个新的错误,我们甚至可以将我们选择的字符串作为参数传递给它。示例 1请考虑以下代码。package main import ( "errors" "fmt" "math" ) func areaOfCircle(radius float64) (float64, error) { if radius < 0 { return 0, errors.New("面积计算错误,半径小于零") } ... 阅读更多
1K+ 次浏览
如果我们想同步 goroutine,我们可以使用通道。通过同步,我们希望 goroutine 以定义的方式工作,例如,在前面的 goroutine 完成执行之前不启动下一个 goroutine。通道有助于实现这一点,因为它们可以用来阻塞进程,也可以用来通知第二个 goroutine 前面的 goroutine 已经完成了它的工作。示例 1让我们考虑一个通道同步的非常基本的例子,我们将看到如何借助缓冲通道来实现它。请考虑以下代码 ... 阅读更多
13K+ 次浏览
响应状态码是我们得到的数字,表示当我们向服务器请求某些内容时,我们从服务器收到的响应类型。从响应中获得不同的状态码,这些状态码主要分为五类。通常,状态码分为以下五类。1xx(信息)2xx(成功)3xx(重定向)4xx(客户端错误)5xx(服务器错误)在本文中,我们将尝试获取这些状态码中的两个或多个。示例 1让我们从对 google.com URL 的基本 HTTP 请求开始。一旦我们这样做,我们将从服务器获取响应 ... 阅读更多
6K+ 次浏览
考虑这样一种情况:出于某种原因,我们想在 Golang 中获取文件的 MIME 类型。为此,我们必须首先知道如何打开文件并将它的一些字节读入缓冲区切片,然后将其传递给一个函数,该函数将帮助我们检测文件的类型。第一步是打开我们要检查其类型的文件。打开文件假设我们有一个名为 sample.pdf 的文件,我们想知道它的 contentType。为了打开文件,我们需要 ... 阅读更多
60K+ 次浏览
要从映射中删除键,我们可以使用 Go 的内置 delete() 函数。需要注意的是,当我们从映射中删除键时,它的值也将被删除,因为在 Go 的映射中,键值对就像一个单一实体。语法delete 函数的语法如下所示。delete(map, key)一旦我们按上述格式调用该函数,映射中的键将被删除。现在,让我们在 Go 代码中使用上述函数,并了解它的工作原理。示例 1请考虑以下代码package main import ( "fmt" ) ... 阅读更多
假设我们有一个如下所示的 JSON。{ "name":"Mukul Latiyan", "age":10, "sports":[ "football", "tennis", "cricket" ] }现在,我们想将这个 JSON 转换为结构体字段,以便我们以后可以访问它,甚至可以对其进行迭代。为此,我们需要首先创建一个结构体,它将满足上述 JSON 的字段。以下所示的结构体将非常适合上述 JSON。type Person struct ... 阅读更多
289 次浏览
步骤从用户那里获取一个数字并将其存储在一个变量中。将数字作为参数传递给递归函数。将基准条件定义为数字小于 2。否则,使用数字减 2 递归调用该函数。然后,返回结果并检查数字是偶数还是奇数。打印最终结果。输入一个数字:124数字是偶数!输入一个数字:567数字是奇数!示例 在线演示package main import ( "fmt" ) func check(n int) bool{ if n < 2 { return n % 2 == 0 } return check(n - 2) } ... 阅读更多
190 次浏览
步骤定义一个递归函数。为该函数定义一个基准情况,即数字应大于零。如果数字大于 0,则再次调用该函数,参数为数字减 1。打印数字。输入上限:512345输入上限:1512..15示例 在线演示package main import ( "fmt" ) func printNo(number int){ if number >= 1{ printNo(number-1) fmt.Println(number) } } func main(){ var upper int fmt.Print("输入上限:") fmt.Scanf("%d", &upper) printNo(upper) }输出输入上限:5 1 2 3 4 5
338 次浏览
步骤读取两个质量以及质量之间的距离,并将它们存储在单独的变量中。将其中一个变量初始化为万有引力常数 G 的值。然后,使用公式 f=(G*m1*m2)/(r**2) 来确定作用于质量之间的力。四舍五入到两位小数,打印力的值。输入第一个质量:1000000输入第二个质量:500000输入质量中心之间的距离:20因此,万有引力是:0.08 N输入第一个质量:90000000输入第二个质量:7000000输入质量中心之间的距离:20因此,万有引力是:105.1 N解释用户必须输入 ... 阅读更多