Golang 教程
Golang 控制语句
Golang 函数 & 方法
Golang 切片 & 数组
Golang 结构体
Golang 字符串
Golang 接口
Golang 指针
Golang 并发
Golang 异常(Error)
Golang 其他杂项

Go 匿名结构和字段

时间:2023年06月10日 阅读:189
以下内容仅是站长或网友个人学习笔记、总结和研究收藏。不保证正确性,因使用而带来的风险与本站无关!
淘客轩-衣食住行外卖生活好助手

Golang中的结构是用户定义的类型,它允许我们在一个单元中创建一组不同类型的元素。任何具有一组属性或字段的真实实体都可以表示为结构。

匿名结构

在Go语言中,允许您创建匿名结构。匿名结构是不包含名称的结构。当您要创建一次性可用结构时,它很有用。您可以使用以下语法创建匿名结构:

variable_name := struct{
// fields
}{// Field_values}

让我们借助示例来讨论这个概念:

//匿名结构的概念
package main 
  
import "fmt"
  
func main() { 
  
    // 创建和初始化匿名结构
    Element := struct { 
        name      string 
        branch    string 
        language  string 
        Particles int
    }{ 
        name:      "詹三", 
        branch:    "开发部", 
        language:  "C++", 
        Particles: 498, 
    } 
  
    //显示匿名结构
    fmt.Println(Element) 
}

输出:

{詹三 开发部 C++ 498}

匿名字段

在Go结构中,允许创建匿名字段。匿名字段是那些不包含任何名称的字段,你只需要提到字段的类型,然后Go就会自动使用该类型作为字段的名称。您可以使用以下语法创建结构的匿名字段:

type struct_name struct{
    int
    bool
    float64
}

重要事项:

  • 在结构中,不允许创建两个或多个相同类型的字段,如下所示:

    type student struct{
    int
    int
    }

    如果尝试这样做,则编译器将抛出错误。

  • 允许将匿名字段与命名字段组合,如下所示:

    type student struct{
     name int
     price int
     string
    }
  • 让我们借助一个示例来讨论匿名字段概念:

    package main 
      
    import "fmt"
      
    //创建一个结构匿名字段 
    type student struct { 
        int
        string 
        float64 
    } 
      
    // Main function 
    func main() { 
      
        // 将值分配给匿名,学生结构的字段
        value := student{123, "Bud", 8900.23} 
      
        fmt.Println("入学人数 : ", value.int) 
        fmt.Println("学生姓名 : ", value.string) 
        fmt.Println("套餐价格 : ", value.float64) 
    }

    输出:

    入学人数 :  123
    学生姓名 :  Bud
    套餐价格 :  8900.23
打赏

本文地址:https://www.momojc.cn/golang/go-anonymous-structure-and-field.html

关于本站 | 隐私政策 | 免责声明 | 广告合作 | 我要投稿 | 后台管理

CopyRight © 2023-2024 MOMO教程 WWW.MOMOJC.CN , All Rights Reserved.

站长E-mail:378074730@qq.com 网站已运行:  运行时长:0.039 秒

京ICP备20029690号-1京ICP备20029690号-2 京公网安备11011402013892号京公网安备11011402013892号 中国互联网违法和不良信息举报中心 网络违法犯罪举报网站

本网站托管于 腾讯云 .由网站卫士提供网站加速和攻击防御服务 提供CDN加速/防御服务.由zblogcn强力驱动 又拍云提供CDN加速/云存储服务 51la网站统计