From: qydysky Date: Mon, 12 Apr 2021 07:14:09 +0000 (+0800) Subject: GetStruct X-Git-Tag: v0.5.5~2 X-Git-Url: http://127.0.0.1:8081/?a=commitdiff_plain;h=37844bb070230ddae33017b22816ab935ca7e193;p=part%2F.git GetStruct --- diff --git a/limit/Limit.go b/limit/Limit.go index 92edfc4..bacfbe5 100644 --- a/limit/Limit.go +++ b/limit/Limit.go @@ -40,4 +40,10 @@ func (l *limit) TO() bool { case <-time.After(time.Duration(l.ms_to_timeout)*time.Millisecond):return true; } return false +} + +//assert interface{} to *limit +func GetStruct(i interface{}) (l *limit,ok bool) { + l,ok = i.(*limit) + return } \ No newline at end of file diff --git a/limit/Limit_test.go b/limit/Limit_test.go index be2730f..908590e 100644 --- a/limit/Limit_test.go +++ b/limit/Limit_test.go @@ -51,4 +51,11 @@ func Test_4(t *testing.T){ time.Sleep(time.Millisecond) } t.Log(pass) +} + +func Test_5(t *testing.T){ + l := New(0,0,10) + if v,ok := GetStruct(interface{}(l));!ok{ + t.Log(`error struct`,v) + } } \ No newline at end of file