返回顶部
首页 > 资讯 > 后端开发 > GO >如何在golang中用另一个数组初始化别名数组?
  • 406
分享到

如何在golang中用另一个数组初始化别名数组?

2024-04-04 23:04:12 406人浏览 薄情痞子
摘要

golang小白一枚,正在不断学习积累知识,现将学习到的知识记录一下,也是将我的所得分享给大家!而今天这篇文章《如何在Golang中用另一个数组初始化别名数组?》带大家来了解一下##content_

golang小白一枚,正在不断学习积累知识,现将学习到的知识记录一下,也是将我的所得分享给大家!而今天这篇文章《如何在Golang中用另一个数组初始化别名数组?》带大家来了解一下##content_title##,希望对大家的知识积累有所帮助,从而弥补自己的不足,助力实战开发


问题内容

type foo [3]int

arr := [3]int {1, 2, 3}
foo := &foo{arr}

它在 golang 中不起作用,它说:

无法将“arr”(类型 [3]int)用作 int 类型

我应该如何正确且优雅地做到这一点;-),我希望我的代码可以写成如下:

func_name(&foo{arr}) // func_name is to receive a *foo and do something

如果我这样编写代码:

type Foo struct {array [3]int}  
  
arr := [3]int {1, 2, 3}  
func_name(&Foo(arr))

它工作得很好,但我希望我的代码可以尽可能简单。


正确答案


您的意思是:

arr := [3]int{1, 2, 3}
foo := foo(arr)

这里是 playground link to try it。但这不是别名;数组在分配时将被复制。如果您正在寻找别名,请考虑使用切片。

您的原始代码创建一个新的 foo 并尝试使用 arr 初始化其第一个元素,但由于编译器指定的原因而失败。

假设“别名”的意思是“两种不同的类型引用”相同的底层缓冲区”:获取一个指向数组的指针,并将其转换为另一种类型的指针。

package main

import "fmt"

type Foo [1]int

func main() {
    bar := [1]int{}
    foo := (*Foo)(&bar)

    bar[0] = 0xdeadbeef
    fmt.Println(*foo)
}

这在 go 中既不优雅也不惯用——这就是切片的用途。

以上就是《如何在golang中用另一个数组初始化别名数组?》的详细内容,更多关于的资料请关注编程网公众号!

您可能感兴趣的文档:

--结束END--

本文标题: 如何在golang中用另一个数组初始化别名数组?

本文链接: https://lsjlt.com/news/596714.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • 如何在golang中用另一个数组初始化别名数组?
    Golang小白一枚,正在不断学习积累知识,现将学习到的知识记录一下,也是将我的所得分享给大家!而今天这篇文章《如何在golang中用另一个数组初始化别名数组?》带大家来了解一下##content_...
    99+
    2024-04-04
  • 如何在Golang中创建和初始化数组
    如何在Golang中创建和初始化数组 在Golang中,数组是一个固定长度的数据结构,用于存储相同类型的元素。数组的长度在创建时就确定了,无法动态改变。本文将介绍如何在Golang中创...
    99+
    2024-03-02
    初始化 golang 数组
  • C#中如何初始化数组
    这篇文章给大家介绍C#中如何初始化数组,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。C#数组初始化int[] iArray = new int[3]{2, 3, 4} 花括号被称为数组初始化器,数组初始化器只能在声明数...
    99+
    2023-06-17
  • 如何在Java中初始化二维数组
    本篇文章给大家分享的是有关如何在Java中初始化二维数组,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。常用的java框架有哪些1.SpringMVC,Spring Web MV...
    99+
    2023-06-14
  • 如何在Java中静态初始化数组
    这期内容当中小编将会给大家带来有关如何在Java中静态初始化数组,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。Java可以用来干什么Java主要应用于:1. web开发;2. Android开发;3. 客...
    99+
    2023-06-14
  • java数组如何初始化?
    Java语言中数组必须先初始化,然后才可以使用。所谓初始化就是为数组的数组元素分配内存空间,并为每个数组元素附初始值。注意:数组完成初始化后,内存空间中针对该数组的各个元素就有个一个默认值: ● 基本数据类型的整数类型(byte、short...
    99+
    2018-03-13
    java教程 java 数组 初始化
  • java 如何初始化数组
    一、什么是初始化在Java程序开发中,使用数组之前都会对其进行初始化,这是因为数组是引用类型,声明数组只是声明一个引用类型的变量,并不是数组对象本身,只要让数组变量指向有效的数组对象,程序中就可使用该数组变量来访问数组元素。所谓数组初始化就...
    99+
    2018-10-10
    java入门 java 初始化 数组
  • java数组如何初始化
    Java语言中数组必须先初始化,然后才可以使用。所谓初始化就是为数组的数组元素分配内存空间,并为每个数组元素附初始值。注意:数组完成初始化后,内存空间中针对该数组的各个元素就有个一个默认值:基本数据类型的整数类型(byte、short、in...
    99+
    2020-04-23
    java入门 java 数组 初始化
  • java如何初始化数组
    什么是初始化在Java程序开发中,使用数组之前都会对其进行初始化,这是因为数组是引用类型,声明数组只是声明一个引用类型的变量,并不是数组对象本身,只要让数组变量指向有效的数组对象,程序中就可使用该数组变量来访问数组元素。 (推荐学习:j...
    99+
    2017-08-16
    java教程 java
  • js如何初始化数组
    这篇文章给大家分享的是有关js如何初始化数组的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。初始化数组如果想要初始化一个指定长度的一维数组,并指定默认值,可以这样:const array =&n...
    99+
    2023-06-17
  • php怎么new一个数组初始化
    在PHP中,使用array()函数即可初始化一个数组,其语法格式如下:$array_name = array(value1, value2, ..., valueN);其中,$array_name为数组名,value1到valueN为可选的...
    99+
    2023-05-19
  • java怎么初始化一个空数组
    在Java中,可以使用以下方法来初始化一个空数组:1. 使用`new`关键字和数组类型的构造函数来创建一个指定大小的空数组。例如,要...
    99+
    2023-08-15
    java
  • php如何排除一个数组中在另一个数组内的元素
    这篇“php如何排除一个数组中在另一个数组内的元素”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“php如何排除一个数组中在另...
    99+
    2023-07-05
  • 怎么在java中初始化数组
    这篇文章给大家介绍怎么在java中初始化数组,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。Java可以用来干什么Java主要应用于:1. web开发;2. Android开发;3. 客户端开发;4. 网页开发;5. 企...
    99+
    2023-06-14
  • C#中怎么初始化一维数组
    C#中怎么初始化一维数组,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。C#一维数组的概念一维数组在本质上是由同类数据构成的表一维数组可以如下例所示声明一个由 5 个整数组成...
    99+
    2023-06-17
  • JavaScript如何附加一个数组到另一个数组上
    这篇文章给大家分享的是有关JavaScript如何附加一个数组到另一个数组上的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。附加(append)一个数组到另一个数组上var&nbs...
    99+
    2024-04-02
  • c语言数组如何初始化
    C语言数组可以通过以下几种方式进行初始化:1. 静态初始化:在定义数组时,直接给出初始值,并用大括号括起来。```cint arr[...
    99+
    2023-08-25
    c语言
  • 怎么在Java中动态初始化数组
    怎么在Java中动态初始化数组?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。Java可以用来干什么Java主要应用于:1. web开发;2. Android开发;3. 客户...
    99+
    2023-06-14
  • 怎么在Java中初始化二维数组
    今天就跟大家聊聊有关怎么在Java中初始化二维数组,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。Java可以用来干什么Java主要应用于:1. web开发;2. Android开发;...
    99+
    2023-06-14
  • PHP生成一个数组,用一个数组的值作为键名,另一个数组的值作为值
    ...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作