﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>语源科技BlogJava-咖啡伴侣</title><link>http://www.blogjava.net/oathleo/</link><description>呆在上海</description><language>zh-cn</language><lastBuildDate>Tue, 05 May 2026 03:40:05 GMT</lastBuildDate><pubDate>Tue, 05 May 2026 03:40:05 GMT</pubDate><ttl>60</ttl><item><title>golang chan 超时</title><link>http://www.blogjava.net/oathleo/archive/2013/12/24/407964.html</link><dc:creator>oathleo</dc:creator><author>oathleo</author><pubDate>Tue, 24 Dec 2013 05:03:00 GMT</pubDate><guid>http://www.blogjava.net/oathleo/archive/2013/12/24/407964.html</guid><wfw:comment>http://www.blogjava.net/oathleo/comments/407964.html</wfw:comment><comments>http://www.blogjava.net/oathleo/archive/2013/12/24/407964.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/oathleo/comments/commentRss/407964.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/oathleo/services/trackbacks/407964.html</trackback:ping><description><![CDATA[<div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />-->package&nbsp;main<br /><br />import&nbsp;(<br />&nbsp;&nbsp;&nbsp;&nbsp;"fmt"<br />&nbsp;&nbsp;&nbsp;&nbsp;"time"<br />)<br /><br />var&nbsp;ch&nbsp;chan&nbsp;<span style="color: #0000FF; ">int</span>&nbsp;=&nbsp;make(chan&nbsp;<span style="color: #0000FF; ">int</span>,&nbsp;1)<br /><br />func&nbsp;main()&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;go&nbsp;aaa()<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;select&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">case</span>&nbsp;&lt;-ch:&nbsp;<span style="color: #008000; ">//</span><span style="color: #008000; ">拿到锁</span><span style="color: #008000; "><br /></span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fmt.Println("call")<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">case</span>&nbsp;&lt;-time.After(5&nbsp;*&nbsp;time.Second):&nbsp;<span style="color: #008000; ">//</span><span style="color: #008000; ">超时5s</span><span style="color: #008000; "><br /></span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fmt.Println("5&nbsp;sec&nbsp;call")<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />}<br /><br />func&nbsp;aaa()&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;time.Sleep(time.Second&nbsp;*&nbsp;3)<br />&nbsp;&nbsp;&nbsp;&nbsp;ch&nbsp;&lt;-&nbsp;1<br />}</div><img src ="http://www.blogjava.net/oathleo/aggbug/407964.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/oathleo/" target="_blank">oathleo</a> 2013-12-24 13:03 <a href="http://www.blogjava.net/oathleo/archive/2013/12/24/407964.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>golang 之 接口</title><link>http://www.blogjava.net/oathleo/archive/2013/12/22/407869.html</link><dc:creator>oathleo</dc:creator><author>oathleo</author><pubDate>Sun, 22 Dec 2013 04:45:00 GMT</pubDate><guid>http://www.blogjava.net/oathleo/archive/2013/12/22/407869.html</guid><wfw:comment>http://www.blogjava.net/oathleo/comments/407869.html</wfw:comment><comments>http://www.blogjava.net/oathleo/archive/2013/12/22/407869.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.blogjava.net/oathleo/comments/commentRss/407869.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/oathleo/services/trackbacks/407869.html</trackback:ping><description><![CDATA[<div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />-->conn,&nbsp;err&nbsp;=&nbsp;ln.Accept()<br />go&nbsp;handleConnection(conn)</div><strong><span>看到这里我曾经有个疑问，为什么不是&nbsp;</span><span style="font-size: 13px; background-color: #eeeeee;">&nbsp;handleConnection(&amp;conn) ?<br /></span></strong><br />下面这个例子解释这个问题<br /><br />
<div style="background-color: #eeeeee; font-size: 13px; border: 1px solid #cccccc; padding: 4px 5px 4px 4px; width: 98%; word-break: break-all;"><!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
-->package&nbsp;main<br />
<br />
import&nbsp;(<br />
&nbsp;&nbsp;&nbsp;&nbsp;"fmt"<br />
)<br />
<br />
type&nbsp;Interface&nbsp;<span style="color: #0000FF; ">interface</span>&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;say()&nbsp;<span style="color: #0000FF; ">string</span><br />
}<br />
<br />
type&nbsp;Object&nbsp;<span style="color: #0000FF; ">struct</span>&nbsp;{<br />
}<br />
<br />
func&nbsp;(<span style="color: #0000FF; ">this</span>&nbsp;*Object)&nbsp;say()&nbsp;<span style="color: #0000FF; ">string</span>&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">return</span>&nbsp;"hello"<br />
}<br />
<br />
func&nbsp;<span style="color: #0000FF; ">do</span>(i&nbsp;Interface)&nbsp;<span style="color: #0000FF; ">string</span>&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">return</span>&nbsp;i.say()<br />
}<br />
<br />
func&nbsp;main()&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;o&nbsp;:=&nbsp;Object{}<br />
&nbsp;&nbsp;&nbsp;&nbsp;fmt.Println(<span style="color: #0000FF; ">do</span>(&amp;o))<br />
&nbsp;&nbsp;&nbsp;&nbsp;fmt.Printf("CCCCCCCCCCC:%T",&nbsp;o)<br />
}<br />
</div>
<br />
函数的参数以接口定义，编译器会自己判断参数是对象还是对象的指针<br />
比如，say是指针上的方法，所以do只接受<span style="background-color: #eeeeee;"><font size="2">Object的指针做参数，do(o)是编译不过的</font><br />
<br />
<font size="2">所以看到库里接口做参数类型定义的时候，可以简单认为，这个接口肯定是个对象指针（虽然也可以用对象，单估计没有哪个类库会用）</font><br />
<br />
例如：<br />
</span><span style="white-space: pre;">	</span>conn, err = ln.Accept()<br />
<span style="white-space:pre">	</span>go handleConnection(conn)<br />
<br />
这里conn是个接口，不需要&nbsp;go handleConnection(&amp;conn)<img src ="http://www.blogjava.net/oathleo/aggbug/407869.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/oathleo/" target="_blank">oathleo</a> 2013-12-22 12:45 <a href="http://www.blogjava.net/oathleo/archive/2013/12/22/407869.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>golang定时定点任务</title><link>http://www.blogjava.net/oathleo/archive/2013/12/19/407774.html</link><dc:creator>oathleo</dc:creator><author>oathleo</author><pubDate>Thu, 19 Dec 2013 08:15:00 GMT</pubDate><guid>http://www.blogjava.net/oathleo/archive/2013/12/19/407774.html</guid><wfw:comment>http://www.blogjava.net/oathleo/comments/407774.html</wfw:comment><comments>http://www.blogjava.net/oathleo/archive/2013/12/19/407774.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/oathleo/comments/commentRss/407774.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/oathleo/services/trackbacks/407774.html</trackback:ping><description><![CDATA[<div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />-->package&nbsp;main<br /><br />import&nbsp;(<br />&nbsp;&nbsp;&nbsp;&nbsp;"fmt"<br />&nbsp;&nbsp;&nbsp;&nbsp;"mag/common"<br />&nbsp;&nbsp;&nbsp;&nbsp;"time"<br />)<br /><br />func&nbsp;main()&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;c&nbsp;:=&nbsp;make(chan&nbsp;<span style="color: #0000FF; ">bool</span>,&nbsp;10)<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;tt&nbsp;:=&nbsp;common.GetTodayGivenTime("161300")<br />&nbsp;&nbsp;&nbsp;&nbsp;dd&nbsp;:=&nbsp;common.SinceNow(tt)<br />&nbsp;&nbsp;&nbsp;&nbsp;time.AfterFunc(dd,&nbsp;func()&nbsp;{&nbsp;<span style="color: #008000; ">//</span><span style="color: #008000; ">非阻塞<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000; ">//</span><span style="color: #008000; ">后续每24小时建立目录</span><span style="color: #008000; "><br /></span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ticker24h&nbsp;:=&nbsp;time.NewTicker(5&nbsp;*&nbsp;time.Second)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">for</span>&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;select&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">case</span>&nbsp;&lt;-ticker24h.C:<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fmt.Println("print")<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;})<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&lt;-c<br />}</div><img src ="http://www.blogjava.net/oathleo/aggbug/407774.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/oathleo/" target="_blank">oathleo</a> 2013-12-19 16:15 <a href="http://www.blogjava.net/oathleo/archive/2013/12/19/407774.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>golang append时slice len 和 cap</title><link>http://www.blogjava.net/oathleo/archive/2013/11/20/406595.html</link><dc:creator>oathleo</dc:creator><author>oathleo</author><pubDate>Wed, 20 Nov 2013 10:48:00 GMT</pubDate><guid>http://www.blogjava.net/oathleo/archive/2013/11/20/406595.html</guid><wfw:comment>http://www.blogjava.net/oathleo/comments/406595.html</wfw:comment><comments>http://www.blogjava.net/oathleo/archive/2013/11/20/406595.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.blogjava.net/oathleo/comments/commentRss/406595.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/oathleo/services/trackbacks/406595.html</trackback:ping><description><![CDATA[<div style="font-family: 微软雅黑; line-height: normal; orphans: 2; text-align: -webkit-auto; widows: 2;"><div>声明:</div><div>源slice= src</div><div>添加slice = app</div><div>结果slice=tar</div></div><div style="font-family: 微软雅黑; line-height: normal; orphans: 2; text-align: -webkit-auto; widows: 2;"></div><div style="font-family: 微软雅黑; line-height: normal; orphans: 2; text-align: -webkit-auto; widows: 2;">append时</div><div style="font-family: 微软雅黑; line-height: normal; orphans: 2; text-align: -webkit-auto; widows: 2;">len tar ===&nbsp;len src +&nbsp;&nbsp;&nbsp;len&nbsp;app</div><div style="font-family: 微软雅黑; line-height: normal; orphans: 2; text-align: -webkit-auto; widows: 2;"></div><div style="font-family: 微软雅黑; line-height: normal; orphans: 2; text-align: -webkit-auto; widows: 2;">1）如果len(src) + len(app) &lt;= cap(src)&nbsp; &nbsp;&nbsp;cap&nbsp;tar &nbsp;= &nbsp;&nbsp;cap(src)</div><div style="font-family: 微软雅黑; line-height: normal; orphans: 2; text-align: -webkit-auto; widows: 2;">2）否则&nbsp;</div><div style="font-family: 微软雅黑; line-height: normal; orphans: 2; text-align: -webkit-auto; widows: 2;">&nbsp; &nbsp; &nbsp; a)&nbsp;len(src) + len(app) &gt; 2* cap(src) &nbsp; &nbsp;&nbsp;cap&nbsp;tar &nbsp;= &nbsp;&nbsp;len(src) + len(app)</div><div style="font-family: 微软雅黑; line-height: normal; orphans: 2; text-align: -webkit-auto; widows: 2;">&nbsp; &nbsp; &nbsp; b)&nbsp;cap(src) &lt;&nbsp;len(src) + len(app) &lt;= 2* cap(src)&nbsp; &nbsp;&nbsp;cap&nbsp;tar&nbsp;=&nbsp;2* cap(src)</div><div style="font-family: 微软雅黑; line-height: normal; orphans: 2; text-align: -webkit-auto; widows: 2;"></div><div style="font-family: 微软雅黑; line-height: normal; orphans: 2; text-align: -webkit-auto; widows: 2;"></div><div style="font-family: 微软雅黑; line-height: normal; orphans: 2; text-align: -webkit-auto; widows: 2;"><div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />-->&nbsp; &nbsp; data&nbsp;:=&nbsp;make([]<span style="color: #0000FF; ">int</span>,&nbsp;10,&nbsp;20)<br />&nbsp;&nbsp;&nbsp;&nbsp;data[0]&nbsp;=&nbsp;1<br />&nbsp;&nbsp;&nbsp;&nbsp;data[1]&nbsp;=&nbsp;2<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;dataappend&nbsp;:=&nbsp;make([]<span style="color: #0000FF; ">int</span>,&nbsp;12,&nbsp;30)<span style="color: #008000; ">//</span><span style="color: #008000; ">修改这个len&nbsp;</span><span style="color: #008000; "><br /></span>&nbsp;&nbsp;&nbsp;&nbsp;dataappend[0]&nbsp;=&nbsp;1<br />&nbsp;&nbsp;&nbsp;&nbsp;dataappend[1]&nbsp;=&nbsp;2<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;result&nbsp;:=&nbsp;append(data,&nbsp;dataappend<img src="http://www.blogjava.net/Images/dot.gif"  alt="" />)<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;result[0]&nbsp;=&nbsp;99<br />&nbsp;&nbsp;&nbsp;&nbsp;result[11]&nbsp;=&nbsp;98<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;fmt.Println("length:",&nbsp;len(data),&nbsp;"cap:",&nbsp;cap(data),&nbsp;":",&nbsp;data)<br />&nbsp;&nbsp;&nbsp;&nbsp;fmt.Println("result&nbsp;length:",&nbsp;len(result),&nbsp;"cap:",&nbsp;cap(result),&nbsp;":",&nbsp;result)<br />&nbsp;&nbsp;&nbsp;&nbsp;fmt.Println("length:",&nbsp;len(dataappend),&nbsp;"cap:",&nbsp;cap(dataappend),&nbsp;":",&nbsp;dataappend)</div></div><img src ="http://www.blogjava.net/oathleo/aggbug/406595.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/oathleo/" target="_blank">oathleo</a> 2013-11-20 18:48 <a href="http://www.blogjava.net/oathleo/archive/2013/11/20/406595.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>golang slice分割和append copy还是引用</title><link>http://www.blogjava.net/oathleo/archive/2013/11/20/406594.html</link><dc:creator>oathleo</dc:creator><author>oathleo</author><pubDate>Wed, 20 Nov 2013 10:46:00 GMT</pubDate><guid>http://www.blogjava.net/oathleo/archive/2013/11/20/406594.html</guid><wfw:comment>http://www.blogjava.net/oathleo/comments/406594.html</wfw:comment><comments>http://www.blogjava.net/oathleo/archive/2013/11/20/406594.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.blogjava.net/oathleo/comments/commentRss/406594.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/oathleo/services/trackbacks/406594.html</trackback:ping><description><![CDATA[<div style="font-family: 微软雅黑; line-height: normal; orphans: 2; text-align: -webkit-auto; widows: 2;">1.slice1:= slice[0:2]</div><div style="font-family: 微软雅黑; line-height: normal; orphans: 2; text-align: -webkit-auto; widows: 2;"><span style="color: red;">引用，非复制</span>，所以任何对slice1或slice的修改都会影响对方</div><div style="font-family: 微软雅黑; line-height: normal; orphans: 2; text-align: -webkit-auto; widows: 2;"></div><div style="font-family: 微软雅黑; line-height: normal; orphans: 2; text-align: -webkit-auto; widows: 2;"><div><span style="white-space: pre; ">	</span>data := []int{1, 2, 3, 4, 5, 6, 7, 8, 9, 0}</div><div><span style="white-space: pre; ">	</span>data1 := data[0:2]</div><div></div><div><span style="white-space: pre; ">	</span>data1[0] = 99</div><div><span style="white-space: pre; ">	</span>fmt.Println(data1)</div><div><span style="white-space: pre; ">	</span>fmt.Println(data)</div></div><div style="font-family: 微软雅黑; line-height: normal; orphans: 2; text-align: -webkit-auto; widows: 2;"></div><div style="font-family: 微软雅黑; line-height: normal; orphans: 2; text-align: -webkit-auto; widows: 2;"><div>[99 2]</div><div>[99 2 3 4 5 6 7 8 9 0]</div></div><div style="font-family: 微软雅黑; line-height: normal; orphans: 2; text-align: -webkit-auto; widows: 2;"></div><div style="font-family: 微软雅黑; line-height: normal; orphans: 2; text-align: -webkit-auto; widows: 2;">2.append</div><div style="font-family: 微软雅黑; line-height: normal; orphans: 2; text-align: -webkit-auto; widows: 2;">append 比较特殊</div><div style="font-family: 微软雅黑; line-height: normal; orphans: 2; text-align: -webkit-auto; widows: 2;">声明:</div><div style="font-family: 微软雅黑; line-height: normal; orphans: 2; text-align: -webkit-auto; widows: 2;">源slice= src</div><div style="font-family: 微软雅黑; line-height: normal; orphans: 2; text-align: -webkit-auto; widows: 2;">添加slice = app</div><div style="font-family: 微软雅黑; line-height: normal; orphans: 2; text-align: -webkit-auto; widows: 2;">结果slice=tar</div><div style="font-family: 微软雅黑; line-height: normal; orphans: 2; text-align: -webkit-auto; widows: 2;">1）如果len(src) + len(app) &lt;= cap(src) &nbsp;src和tar 是指向同一数据引用 ，即<span style="color: red;">修改src或tar，会影响对方</span></div><div style="font-family: 微软雅黑; line-height: normal; orphans: 2; text-align: -webkit-auto; widows: 2;">2）否则 tar 是copy的方式&nbsp;src + app ，<span style="color: #ff0000; ">即修改src或tar，不会影响对方</span></div><div style="font-family: 微软雅黑; line-height: normal; orphans: 2; text-align: -webkit-auto; widows: 2;">无论哪种情况不会影响app，因为app都会用copy的方式进入tar</div><div style="font-family: 微软雅黑; line-height: normal; orphans: 2; text-align: -webkit-auto; widows: 2;">&nbsp;</div><div style="font-family: 微软雅黑; line-height: normal; orphans: 2; text-align: -webkit-auto; widows: 2;"><div>func test2() {</div><div><span style="white-space: pre; ">	</span>data := make([]int, 10, 20)</div><div><span style="white-space: pre; ">	</span>data[0] = 1</div><div><span style="white-space: pre; ">	</span>data[1] = 2</div><div></div><div><span style="white-space: pre; ">	</span>dataappend := make([]int, 10, 20)//len &lt;=10 则&nbsp;<span style="white-space: pre; ">	</span>result[0] = 99 会 影响源Slice</div><div><span style="white-space: pre; ">	</span>dataappend[0] = 1</div><div><span style="white-space: pre; ">	</span>dataappend[1] = 2</div><div></div><div><span style="white-space: pre; ">	</span>result := append(data, dataappend...)</div><div></div><div><span style="white-space: pre; ">	</span>result[0] = 99</div><div><span style="white-space: pre; ">	</span>result[11] = 98</div><div></div><div><span style="white-space: pre; ">	</span>fmt.Println("length:", len(data), ":", data)</div><div><span style="white-space: pre; ">	</span>fmt.Println("length:", len(result), ":", result)</div><div><span style="white-space: pre; ">	</span>fmt.Println("length:", len(dataappend), ":", dataappend)</div><div>}</div></div><img src ="http://www.blogjava.net/oathleo/aggbug/406594.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/oathleo/" target="_blank">oathleo</a> 2013-11-20 18:46 <a href="http://www.blogjava.net/oathleo/archive/2013/11/20/406594.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>golang 之  去掉定长数组里的0 []byte 转 string</title><link>http://www.blogjava.net/oathleo/archive/2013/11/19/406513.html</link><dc:creator>oathleo</dc:creator><author>oathleo</author><pubDate>Tue, 19 Nov 2013 02:16:00 GMT</pubDate><guid>http://www.blogjava.net/oathleo/archive/2013/11/19/406513.html</guid><wfw:comment>http://www.blogjava.net/oathleo/comments/406513.html</wfw:comment><comments>http://www.blogjava.net/oathleo/archive/2013/11/19/406513.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/oathleo/comments/commentRss/406513.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/oathleo/services/trackbacks/406513.html</trackback:ping><description><![CDATA[<div><span style="white-space:pre">		</span>index := bytes.IndexByte(buf_PN, 0)</div><div><span style="white-space:pre">		</span>rbyf_pn := buf_PN[0:index]</div><img src ="http://www.blogjava.net/oathleo/aggbug/406513.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/oathleo/" target="_blank">oathleo</a> 2013-11-19 10:16 <a href="http://www.blogjava.net/oathleo/archive/2013/11/19/406513.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>golang之 windows下杀进程</title><link>http://www.blogjava.net/oathleo/archive/2013/11/15/406377.html</link><dc:creator>oathleo</dc:creator><author>oathleo</author><pubDate>Fri, 15 Nov 2013 06:07:00 GMT</pubDate><guid>http://www.blogjava.net/oathleo/archive/2013/11/15/406377.html</guid><wfw:comment>http://www.blogjava.net/oathleo/comments/406377.html</wfw:comment><comments>http://www.blogjava.net/oathleo/archive/2013/11/15/406377.html#Feedback</comments><slash:comments>4</slash:comments><wfw:commentRss>http://www.blogjava.net/oathleo/comments/commentRss/406377.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/oathleo/services/trackbacks/406377.html</trackback:ping><description><![CDATA[<div><span style="white-space:pre">	</span>c := exec.Command("taskkill.exe", "/f", "/im", "test.exe")</div><div><span style="white-space:pre">	</span>err := c.Start()</div><img src ="http://www.blogjava.net/oathleo/aggbug/406377.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/oathleo/" target="_blank">oathleo</a> 2013-11-15 14:07 <a href="http://www.blogjava.net/oathleo/archive/2013/11/15/406377.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>golang slice Append </title><link>http://www.blogjava.net/oathleo/archive/2013/11/05/406016.html</link><dc:creator>oathleo</dc:creator><author>oathleo</author><pubDate>Tue, 05 Nov 2013 08:39:00 GMT</pubDate><guid>http://www.blogjava.net/oathleo/archive/2013/11/05/406016.html</guid><wfw:comment>http://www.blogjava.net/oathleo/comments/406016.html</wfw:comment><comments>http://www.blogjava.net/oathleo/archive/2013/11/05/406016.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/oathleo/comments/commentRss/406016.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/oathleo/services/trackbacks/406016.html</trackback:ping><description><![CDATA[s2 := append(s1, *)<br /><br />切片s1上记录的切片信息复制给s2，<br /><br />1.如果s1指向的底层array长度不够，append的过程会发生如下操作：内存中不仅新开辟一块区域存储append后的切片信息，而且需要新开辟一块区域存储底层array（复制原来的array至这块新array中），最后再append新数据进新array中，这样，s2指向新array。<br /><br />2.如果s1指向的底层array长度够,<br />s2和s1指向同一个array，append的结果是内存中新开辟一个区域存储新切片信息。<br /><br />开辟一块区域存储底层array 使用下面的策略：<br /><span style="color: red;">1.如果 增加的 len &lt; s的cap 则 新s的cap*2</span><br /><span style="color: red;">2.如果&nbsp;增加的 len &gt; s的cap 则 新s的cap = 老cap +&nbsp;增加数据的 len</span><img src ="http://www.blogjava.net/oathleo/aggbug/406016.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/oathleo/" target="_blank">oathleo</a> 2013-11-05 16:39 <a href="http://www.blogjava.net/oathleo/archive/2013/11/05/406016.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>golang 定时</title><link>http://www.blogjava.net/oathleo/archive/2013/10/10/404842.html</link><dc:creator>oathleo</dc:creator><author>oathleo</author><pubDate>Thu, 10 Oct 2013 07:07:00 GMT</pubDate><guid>http://www.blogjava.net/oathleo/archive/2013/10/10/404842.html</guid><wfw:comment>http://www.blogjava.net/oathleo/comments/404842.html</wfw:comment><comments>http://www.blogjava.net/oathleo/archive/2013/10/10/404842.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/oathleo/comments/commentRss/404842.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/oathleo/services/trackbacks/404842.html</trackback:ping><description><![CDATA[<div style="display: inline-block;">
<pre class="brush:go;gutter:false;" style="color: #333333; line-height: normal; background-color: #fefefe;"><br />
</pre>
</div>
<div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all">
<pre style="font-size: 14px; color: #333333; line-height: normal; background-color: #fefefe;"> <span style="font-size: 13px; font-family: verdana, 'courier new'; line-height: 21px; color: #008000;">//</span><span style="font-size: 13px; font-family: verdana, 'courier new'; line-height: 21px; color: #008000;">&nbsp;(A)</span></pre>
time.AfterFunc(5&nbsp;*&nbsp;time.Minute,&nbsp;func()&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;fmt.Printf("expired")<br />
}<br />
<br />
<span style="color: #008000; ">//</span><span style="color: #008000; ">&nbsp;(B)&nbsp;create&nbsp;a&nbsp;Timer&nbsp;object</span><span style="color: #008000; "><br />
</span>timer&nbsp;:=&nbsp;time.NewTimer(5&nbsp;*&nbsp;time.Minute)<br />
&lt;-timer.C<br />
fmt.Printf("expired")<br />
<br />
<span style="color: #008000; ">//</span><span style="color: #008000; ">&nbsp;(C)&nbsp;time.After()&nbsp;returns&nbsp;timer.C&nbsp;internally</span><span style="color: #008000; "><br />
</span>&lt;-time.After(5&nbsp;*&nbsp;time.Minute)<br />
fmt.Printf("expired")</div><img src ="http://www.blogjava.net/oathleo/aggbug/404842.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/oathleo/" target="_blank">oathleo</a> 2013-10-10 15:07 <a href="http://www.blogjava.net/oathleo/archive/2013/10/10/404842.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>golang 非缓冲通道 recv 的操作 肯定 在 send 操作 之前发生</title><link>http://www.blogjava.net/oathleo/archive/2013/10/10/404830.html</link><dc:creator>oathleo</dc:creator><author>oathleo</author><pubDate>Thu, 10 Oct 2013 02:56:00 GMT</pubDate><guid>http://www.blogjava.net/oathleo/archive/2013/10/10/404830.html</guid><wfw:comment>http://www.blogjava.net/oathleo/comments/404830.html</wfw:comment><comments>http://www.blogjava.net/oathleo/archive/2013/10/10/404830.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/oathleo/comments/commentRss/404830.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/oathleo/services/trackbacks/404830.html</trackback:ping><description><![CDATA[对亍非缓冲通道,&#8220;从通道接收数据&#8221;的操作<br />
一定会在
&#8220;向通道发送数据&#8221;的操作完成前发生。<br />
<br />
<div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
-->package&nbsp;main<br />
<br />
import&nbsp;(<br />
&nbsp;&nbsp;&nbsp;&nbsp;"fmt"<br />
)<br />
<br />
var&nbsp;c&nbsp;=&nbsp;make(chan&nbsp;<span style="color: #0000FF; ">int</span>)<br />
var&nbsp;str&nbsp;<span style="color: #0000FF; ">string</span><br />
<br />
func&nbsp;ready()&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;str&nbsp;=&nbsp;"abc"<br />
&nbsp;&nbsp;&nbsp;&nbsp;fmt.Println("ready1")<br />
&nbsp;&nbsp;&nbsp;&nbsp;&lt;-c&nbsp;<span style="color: #008000; ">//</span><span style="color: #008000; ">get</span><span style="color: #008000; "><br />
</span>&nbsp;&nbsp;&nbsp;&nbsp;fmt.Println("ready2")<br />
}<br />
<br />
func&nbsp;main()&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;go&nbsp;ready()<br />
&nbsp;&nbsp;&nbsp;&nbsp;c&nbsp;&lt;-&nbsp;1&nbsp;<span style="color: #008000; ">//</span><span style="color: #008000; ">put</span><span style="color: #008000; "><br />
</span>&nbsp;&nbsp;&nbsp;&nbsp;fmt.Println(str)<br />
}</div>
<br /><div style="background-color: #eeeeee; font-size: 13px; border: 1px solid #cccccc; padding: 4px 5px 4px 4px; width: 98%; word-break: break-all;"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />-->ready1<br />ready2<br />abc</div><img src ="http://www.blogjava.net/oathleo/aggbug/404830.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/oathleo/" target="_blank">oathleo</a> 2013-10-10 10:56 <a href="http://www.blogjava.net/oathleo/archive/2013/10/10/404830.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>