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语言的反射三定律

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

go语言方法Value Receiver, Pointer Receiver各种不同情况的实验笔记

go语言, 方法, value receiver, pointer receiver实验笔记
  • htyu_0203_39
  • htyu_0203_39
  • 2016年08月16日 09:40
  • 1646

go语言中type的几种使用

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

go - 内置基础类型

Go 语言中包括以下内置基础类型: 布尔型:bool 整型:int int64 int32 int16 int8 uint8(byte) uint16 uint32 uint64 uint 浮点型:f...
  • chuangrain
  • chuangrain
  • 2013年07月02日 12:32
  • 13383

go语言中的反射的使用

今天尝试了一下使用go语言中的反射来将struct类型转换成xml,结果相当纠结。首先去看了一下go的reflect包的实现,根据go的规则,首先应该去看一个NewXXX的方法,结果发现了一个叫New...
  • HopingWhite
  • HopingWhite
  • 2010年12月24日 19:32
  • 7631

Java注释@interface的用法【转】

java用  @interface Annotation{ } 定义一个注解 @Annotation,一个注解是一个类。 @Override,@Deprecated,@SuppressWarni...
  • liuwenbo0920
  • liuwenbo0920
  • 2012年02月24日 14:21
  • 129883

Annotation介绍@interface

    Annotation是继承自java.lang.annotation.Annotation的类,用于向程序分析工具或虚拟机提供package class field methed 等方面的信息...
  • foamflower
  • foamflower
  • 2010年10月17日 09:32
  • 15563

Go语言中的<断言>

废话为什么要给标题加上符号着重一下?难道编程语言中的思想不都是一样的吗?的确,基本思想大同小异,各自实现的原理和设计哲学会有差异。如果你之前没有使用过Go语言,那么你很自然的认为,Go语言中一定有as...
  • cc7756789w
  • cc7756789w
  • 2016年04月06日 10:47
  • 2865

Go语言基础:Interface

转:http://xhrwang.me/2014/12/29/golang-fundamentals-8-interface.html我们知道 Golang 中没有 class 的概念,而是通过 in...
  • uudou
  • uudou
  • 2016年09月07日 07:38
  • 3524

Golang-interface(三 接口类型)

Go Data Structures: Interfaces Posted on Tuesday, December 1, 2009. Go's interfaces—...
  • Crazy__Programmer
  • Crazy__Programmer
  • 2014年05月12日 08:19
  • 2729
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Go语言interface的value.(type)使用小技巧
举报原因:
原因补充:

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