Go语言interface的value.(type)使用小技巧

原创 2015年07月10日 18:13:25
<pre name="code" class="plain">package main

import (
	"container/list"
	"fmt"
	"math/rand"
	"sync"
	"time"
)

type INFO struct {
	lock sync.Mutex
	Name string
	Time int64
}

var List *list.List = list.New()

func main() {
	var Info INFO
	go func() {
		for i := 0; i < 5; i++ {
			time.Sleep(time.Duration(1e9 * int64(rand.Intn(5))))
			Info.lock.Lock()
			Info.Name = fmt.Sprint("Name", i)
			Info.Time = time.Now().Unix() + 3
			Info.lock.Unlock()
			List.PushBack(Info)
		}
	}()
	go Getgoods()
	select {}
}
func Getgoods() {
	for {
		time.Sleep(1e8)
		for List.Len() > 0 {
			N, T := List.Remove(List.Front()).(INFO).name()
			now := time.Now().Unix()
			if T-now <= 0 {
				fmt.Println(N, T, now)
				continue
			}
			time.Sleep(time.Duration((T - now) * 1e9))
			fmt.Println(N, T, now)
		}
	}
}

func (i INFO) name() (string, int64) {
	return i.Name, i.Time
}


                    
版权声明:本文为博主原创文章,交流邮箱czxichen@163.com,交流群:259693140(此群不允许闲聊)

相关文章推荐

go语言中type的几种使用

type是go语法里的重要而且常用的关键字,搞清楚type的使用,就容易理解go语言中的核心概念struct、interface、函数等的使用。 (本文作者目前在华为南研所从事编程语言、分布式技术应用...
  • tzs919
  • tzs919
  • 2016年12月11日 09:12
  • 4611

golang技术随笔(一)深入理解interface

Go语言的主要设计者之一罗布·派克( Rob Pike)曾经说过,如果只能选择一个Go语言的特 性移植到其他语言中,他会选择接口。可见接口在golang中的地位,及其对gloang这门语言所带来的活力...

Go语言的反射三定律

这里先抛出GO语言的反射三定律,然后一一进行讲解: 1、反射可以将“接口类型变量”转换为“反射类型对象” 2、反射可以将“反射类型对象”转换为“接口类型变量” 3、如果要修改反射类型对象,其值必须是“...

golang中x.(type)只能在switch中使用

例如: func MyPrintf(args ...interface{}) { for _, arg := range args { switch arg.(type) { case int: f...
  • samete
  • samete
  • 2015年06月14日 19:44
  • 1467

项目开发中关于type:file使用小技巧!

在日常开发当中,免不了上传文件功能,但是自带的控件形象(程序猿:我感觉很好看啊!),实在拿不太出手,但是我们又必须使用那个选择浏览文件的窗口,那怎么办呢?下面我告诉大家一个实用的小技巧。首先你得了解j...

go interface type

今天看beego的源代码的时候看到这么一段code func ParseBool(val interface{}) (value bool, err error) { if val != nil {...

代码手写UI,xib和StoryBoard间的博弈,以及Interface Builder的一些小技巧

Code-vs-Xibs-vs-StroyBoard 最近接触了几个刚入门的iOS学习者,他们之中存在一个普遍和困惑和疑问,就是应该如何制作UI界面。iOS应用是非常重视用户体验的,可以说绝大多...
  • hxl188
  • hxl188
  • 2014年01月02日 10:06
  • 1003

GO语言interface

接口特性 (1)接口是一个或多个方法签名的集合 (2)只要某个类型拥有该接口的所有方法签名,即算实现该接口,无需显示声明实现了哪个接口,称为Structural Typing (3)接口只有方法...

关于Go语言中nil和interface的问题

关于Go语言中nil和interface的问题: package demo01 //关于Go语言中nil和interface的问题 //Date:2014-2-19 20:04:25 impor...

Go语言基础:Interface

转:http://xhrwang.me/2014/12/29/golang-fundamentals-8-interface.html我们知道 Golang 中没有 class 的概念,而是通过 in...
  • uudou
  • uudou
  • 2016年09月07日 07:38
  • 2595
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Go语言interface的value.(type)使用小技巧
举报原因:
原因补充:

(最多只允许输入30个字)