Go语法学习(2)

1. 函数

        1-1 Main函数

        每个Go语言程序都应该有个main package; Main package 里的main函数是Go语言程序入口

//一种常见的main写法

package main

import (
    "flag"
    "fmt"
    "os"
)
//通过name 作为参数,在执行main函数的时候,   --name canshu   传参
func main(){
    name := flag.String("name", "working","say hi")
    flag.Parse()
    fmt.Println("os args is:", os.Args)
    fmt.Println("input parameter is ", *name)
}

1-2 Init函数

  • Init函数:会在包初始化时运行
  • 谨慎使用Init函数
    • 当多个依赖项目引用统一项目,且被引用项目的初始化在Init中完成,并且不可重复运行时,会导致启动错误。

1-3返回值

  • 多指返回
    • 函数可以返回任意数量的返回值
    • 多返回值的应用场景?错误处理
  • 命名返回值
    • Go的返回值可以被命名,他们会被视作定义在函数顶部的变量。
    • 返回值的名称应当具有一定的意义,它可以作为文档使用
    • 没有参数的return 语句返回已命名的返回值。也就是直接返回
func DupString(input string)(err error, result string) {

    if input == "成立" {
        err = fmt.Errorf("错误结果")
        return
    }
    result = 1 + 3
    return
}

1-4传递变长参数

        Go语言中的可变长参数允许调用方传递任意多个相同类型的参数

  • 函数定义
    • func append(slice []type, elems ...Type)[]Type
  • 调用方法
    • myslice := []string{}
      myslice = append(myslice,"a","b","c")

1-5回调函数(Callback)

  •   函数作为参数传入其他函数,并在其他函数内部调用执行

    func main(){
        DoOperation(1, increase)
    }
    
    func increase(a,b int){
        println("increase result is:", a+b)
    }
    
    func DoOperation(y int, f func(int,int)){
        f(y, 1)
    }

1-6 闭包

  • 匿名函数
    • 不能独立存在
    • 可以赋值给其他变量; x:= func(){}
    • 可以直接调用; func(x, y int){println(x+y)}(1,2)
    • 可作为函数返回值; func Add() (func (b int) int)
  • 使用场景
  • defer func() {
        if r:= recover(); r!= nil {
            println("recover in FunX')
        }
    }()

 1-7 方法

  • 作用在接收者上的函数
  • 使用场景
    • 很多场景下,函数需要的上下文可以保存在receiver属性中,通过定义receiver的方法,该方法可以直接访问reveiver属性,减少参数传递需求
    • func (recv receiver_type) methodName(Paramter_list){return value_list}
      
      func (s *Server) StartTLS(){
          if s.URL != "" {
              panic("")
          }
          if s.client == nil {
              s.client = &http.Client(Transport: &http.Transport){})
          }
      }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
基于上面的引用内容,golang的基础语法学习可以参考以下几个步骤: 1. 首先,我们需要安装golang的开发环境。你可以直接进入官网(https://go.dev/)下载并安装golang的解释器。 2. 接下来,我们可以开始学习golang语法。从上面的引用内容可以看出,golang语法和Java的结构很相似,所以如果你之前有Java编程的经验,可以借鉴一些类比来学习。但是即使你没有Java的经验,也不用担心,golang语法相对简单并且易于学习。 3. 另外,golang被称为“云计算时代的开发利器”,在使用过程中给人一种优雅、亲切、舒适的感觉。因此,在学习golang的过程中,你可能会发现它的语法设计和使用方式非常人性化。 综上所述,学习golang的基础语法可以通过安装开发环境、参考Java的结构以及体验其优雅、亲切、舒适的特点来进行。希望这些信息能够帮助你开始学习golang的基础语法。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [一文看完golang基础语法](https://blog.csdn.net/qq_35889508/article/details/128125279)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

悟道xn

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值