使用自定义的silence类型的add方法添加数据

33 views
Skip to first unread message

Ric Y

unread,
Mar 6, 2019, 2:57:43 AM3/6/19
to Golang-China
package main

import (
"fmt"
)

type list []string

func (l *list) add(s string) {
fmt.Println(">",l)
newL := make(list, len(*l)+1)
for i, v := range *l {
newL[i] = v
}
newL[len(newL)-1] = s

l = &newL
fmt.Println("<",l)
}


func (l list) add2(s string) {
fmt.Println(">",l)
l = append(l, s)
fmt.Println("<",l)
}

func main() {
fmt.Println("Hello, 世界")

var l list
fmt.Println(l)
l.add("1")
l.add2("2")
fmt.Println(l)
}


运行结果如下:
Hello, 世界
[]
> &[]
< &[1]
> []
< [2]
[]


效果很像是在方法内,操作的对象和调用对象内存引用不一致,为啥呢?

TangWenming

unread,
Mar 6, 2019, 3:11:01 AM3/6/19
to golang...@googlegroups.com
歪楼请问:现在有什么好的科学上网神器

--
--
官网: http://golang-china.org/
IRC: irc.freenode.net #golang-china
@golangchina
---
您收到此邮件是因为您订阅了Google网上论坛上的“Golang-China”群组。
要退订此群组并停止接收此群组的电子邮件,请发送电子邮件到golang-china...@googlegroups.com
要在网络上查看此讨论,请访问https://groups.google.com/d/msgid/golang-china/0874a3fc-96c6-44c1-8b7f-866dce19780e%40googlegroups.com
要查看更多选项,请访问https://groups.google.com/d/optout

马丙涛

unread,
Mar 6, 2019, 3:12:15 AM3/6/19
to Golang-China
add方法中的l是一个指针变量,这个指针变量的值是main中初始化的list结构的地址,在add方法中这个指针变量的值变了,变成了新申请的list结构的地址,而原来main里的那个list结构没变,本身的地址也没变,print打印就是空值了。add2中l是复制一份的,里面的改动不会影响调用者

在 2019年3月6日星期三 UTC+8下午3:57:43,Ric Y写道:

Ric Y

unread,
Mar 6, 2019, 4:34:55 AM3/6/19
to Golang-China
难道不是ss、ssr等ss家族产品?

在 2019年3月6日星期三 UTC+8下午4:11:01,TangWenming写道:
歪楼请问:现在有什么好的科学上网神器

要退订此群组并停止接收此群组的电子邮件,请发送电子邮件到golang-china+unsubscribe@googlegroups.com

TangWenming

unread,
Mar 6, 2019, 4:35:48 AM3/6/19
to golang...@googlegroups.com
客户端是这个,但是大多数 ip 都被封掉了。

要退订此群组并停止接收此群组的电子邮件,请发送电子邮件到golang-china...@googlegroups.com
要在网络上查看此讨论,请访问https://groups.google.com/d/msgid/golang-china/8934106e-ecea-4059-960d-c7fe0aae4ddb%40googlegroups.com
要查看更多选项,请访问https://groups.google.com/d/optout

biqia...@gmail.com

unread,
Mar 6, 2019, 4:38:41 AM3/6/19
to golang...@googlegroups.com
V2ray + WebSocket + TLS

TangWenming <wen...@cshome.com> 于2019年3月6日周三 下午5:35写道:
客户端是这个,但是大多数 ip 都被封掉了。

歪楼请问:现在有什么好的科学上网神器

要退订此群组并停止接收此群组的电子邮件,请发送电子邮件到golang-china...@googlegroups.com

--
--
官网: http://golang-china.org/
IRC: irc.freenode.net #golang-china
@golangchina
---
您收到此邮件是因为您订阅了Google网上论坛上的“Golang-China”群组。
要退订此群组并停止接收此群组的电子邮件,请发送电子邮件到golang-china...@googlegroups.com
要在网络上查看此讨论,请访问https://groups.google.com/d/msgid/golang-china/8934106e-ecea-4059-960d-c7fe0aae4ddb%40googlegroups.com
要查看更多选项,请访问https://groups.google.com/d/optout

--
--
官网: http://golang-china.org/
IRC: irc.freenode.net #golang-china
@golangchina
---
您收到此邮件是因为您订阅了Google网上论坛上的“Golang-China”群组。
要退订此群组并停止接收此群组的电子邮件,请发送电子邮件到golang-china...@googlegroups.com

xiao cui

unread,
Mar 7, 2019, 10:07:30 PM3/7/19
to golang...@googlegroups.com

TangWenming <wen...@cshome.com> 于2019年3月6日周三 下午4:11写道:
Reply all
Reply to author
Forward
0 new messages