当前位置: 首页 > news >正文

危险网站怎么办网站建设方案硬件支撑

危险网站怎么办,网站建设方案硬件支撑,电商设计师常用的网站,广州建设工程造价信息网深入理解与使用go之函数与方法–理解与使用 文章目录 引子函数与方法分类函数函数入参普通参数可变参数默认值返回命名不带命名带命名讨论init 函数defer 函数方法值接收指针接收构造函数引子 在 Go 语言中,函数被视为一等公民(First-Class Citizens),这意味着函数可以像其… 深入理解与使用go之函数与方法–理解与使用 文章目录 引子函数与方法分类函数函数入参普通参数可变参数默认值 返回命名不带命名带命名讨论 init 函数defer 函数 方法值接收指针接收 构造函数 引子 在 Go 语言中,函数被视为一等公民(First-Class Citizens),这意味着函数可以像其他值(比如整数、字符串等)一样被操作、分配和传递。而方法是附加到给定类型的函数。附加类型称为接收器,可以是指针或值。 我们分别看两个例子: func Print(r int) {fmt.Println(r) }func Add(a, b int) int {var r intdefer Print(r)r = a + breturn r }func main() {Add(1, 2) }这个打印结果是啥? ,再看下面的例子 type Student struct {Score int } func (s Student) Set(score int) {s.Score = score } func (s Student) Get() int {return s.Score } func main() {s := Student{120}s.Set(88)fmt.Println(s.Get()) }这个最终打印结果怎么不是我们希望的那样,我加地址符了哦,那么问题来了 defer函数的执行逻辑是啥,他和return到底内个先方法接收器我们应该给指针还是值我们应该使用结果命名参数么go函数有可变数量参数么,参数是否有默认值泛型参数用处是什么函数里的变量都在栈上么带着这些问题,我们来讨论讨论今天要说的函数与方法 函数与方法 分类 老规矩,还是先分类,其实显而易见的我们分成了两类 函数 根据函数入参 普通参数可变参数默认值 根据返回命名参数 返回类型参数返回命名参数 init 初始化函数也值得说一说 defer 我觉得有必要把 defer 单独拿出来说说,他和 return 的关系在某些情况下很难甄别 方法 根据接收器 值接收器指针接收器 构造函数 函数 函数入参 普通参数 func Add(a, b int) int {return a + b } // 调用: Add(1,2)可变参数 举个栗子 func Add(s ...int) int {var sum intfor _, v := range s {sum += v}return sum }可变参数 以同一类型 带3个点 作为入参 如果有多个参数,可变参数只能作为最后一个参数 func Add(name string, s ...int) int 可变参数调用 可以不传、传1到多个参数 Add() Add(1) Add(1,2) // ...切片传入可变参数,可以使用语法糖 slice := []int{1, 2, 3, 4, 5} Add(slice...)默认值 默认参数值是指在函数定义中为参数提供一个默认值,如果调用函数时没有提供该参数的值,则使用默认值作为参数值,在 Go 语言中,函数没有直接支持默认参数值的功能。不过,我们可以依赖可变参数来构造一个 func SetProject(serverAddr string, ports ...int) {var port intdefaultPort := 80if len(ports) 0 {port = ports[0]} else {port = defaultPort}fmt.Println(port)// other code here }我们调用 func main() {SetProject("user")SetProject("user", 8080) }这样就解决了 默认值的问题,不过有个弊端,就是我们始终只能有一个默认值参数,如果我们希望有多个呢? 结构体来凑 type Project struct {ServerAddr stringPort int } func SetProject(pro ...Project) {var project ProjectdefaultPort := Project{ServerAddr:"localhost",Port: 80,}if len(pro) 0 {project = pro[0]} else {project = defaultPort}fmt.Println(project.ServerAddr, project.Port)// other code here }返回命名 不带命名 func Add(a, b int) int {return a + b }带命名
http://www.pierceye.com/news/28253/

相关文章:

  • 湖南3合1网站建设价格怎么把网站黑了
  • 网站关键词怎么设置西安 企业网站建设
  • 电子商务网站开发的内容企业网站建设
  • 做问卷的网站有哪些内容编辑wordpress菜单
  • 一流的菏泽网站建设现在的seo1发布页在哪里
  • 谷歌优化 网站建设嘉兴招聘网
  • 溧水做网站做视频网站弹窗
  • 北京网站高端建设怎么做国内网站
  • 给网站做优化怎么做河北省建设工程质量监督网站
  • 宜昌哪里做网站个人简历模板免费下载网站
  • 中山模板建站软件贵州seo排名
  • 下载官方网站app下载济南网站建设_美叶网络
  • php简单购物网站源码php+ajax网站开发典型实例 pdf
  • 开发一个网站能赚多少钱宝安中心区规划
  • 呼伦贝尔建设工程检测网站企业做网站的目的是什么
  • 家庭厨房做外卖网站网站建设与维护
  • 免费网站如何被百度收录微信公众平台官网登录入口网页版
  • 购物网站产品做促销能赚钱吗wordpress提示ftp
  • 做网站还要买服务器吗有了域名后怎样做网站
  • 制作公司网站需要几个数据表网页打不开pdf文件怎么办
  • 如何做网站出单如何搭建个人博客网站
  • wordpress开放平台一直在做竞价的网站是不是不需要做seo
  • 做网站前需要做什么准备杭州公司车牌摇号申请流程
  • wordpress如何导航网站模板自定义表情在线制作
  • Godaddy如何建设网站天河建设网站公司
  • 自己的电脑做服务器,并建网站深圳企业公司
  • 美食网站的设计与实现wordpress文章删除
  • 怎能建设个人网站赤峰网站建设 公司
  • 河北唐山 网站建设网站设计中搜索界面怎么做
  • 网页编辑与网站编辑做网站做本地服务器