怎樣判斷一個變數的型別?
package main
import "fmt"
var container = []string{"zero", "one", "two"}
func main() {
container := map[int]string{0: "zero", 1: "one", 2: "two"}
fmt.Printf("The element is %q.\n", container[1])
}
怎樣在列印變數container的元素之前,判斷它的型別呢?
答案是:使用型別斷言
表示式。語法是 x.(T)
x
就是要判斷型別的變數,x
在當下必須是介面型別的。T
就是斷言的變數型別。
在Go語言中,interface{}
代表空介面。任何型別都是空介面的實現型別。
value, ok := interface{}(container).([]string)
上面這行程式碼,:=
右邊,是x.(T)
:型別斷言表示式的應用。應為container不是介面型別,需要轉換一下型別。
斷言表示式的結果賦值給 value和ok兩個變數。
相關推薦
怎樣判斷一個變數的型別?
package main import "fmt" var container = []string{"zero", "one", "two"} func main() { container := map[int]str
python3怎麼判斷一個變數的型別(isinstance,type)
兩個方法 一個通用 一個個別用不了的情況下(入list) 1 isinstance def add_key(self,keyname): self.keyname=keyname if isinstance(self.keyname,in
判斷一個變數是不是陣列Array型別的方法
JavaScript中檢測物件的方法 1.typeof操作符這種方法對於一些常用的型別來說那算是毫無壓力,比如Function、String、Number、Undefined等,但是要是檢測Array的物件就不起作用了。 複製程式碼程式碼如下: alert(type
js - 【陣列】怎麼判斷一個變數是陣列型別的?
怎麼判斷一個數組是陣列呢? 其實這個也是一個常考的題目。依稀記得我為數不多的面試經過中都被問道過。 方案一: instanceof variable instanceof Array 解決思路: 使用型別判斷所給的方法 instanceof &nb
判斷一個變數是否在兩變數之間
1 #include <bits/stdc++.h> 2 using namespace std; 3 4 bool inRange(int x,int left,int right) 5 { 6 if(left>right) return inRang
thinkphp模板裡面判斷一個變數是否存在於一個數組中 相當於in_array() in 或range 標籤
thinkphp 模板裡面可以這樣寫包含操作 //in 標籤 <in name="變數名" value="值1,值2,...">要輸出的內容</in> <in nam
JS中如何判斷一個變數是null/undefined
本文轉自http://blog.csdn.net/sunny_ran/article/details/52572288 JS 中如何判斷 undefined JavaScript 中有兩個特殊資料型別:undefined 和 null,下節介紹了 null 的判斷,下面
JavaScript判斷一個變數是物件還是陣列
typeof都返回object 在JavaScript中所有資料型別嚴格意義上都是物件,但實際使用中我們還是有型別之分,如果要判斷一個變數是陣列還是物件使用typeof搞不定,因為它全都返回object 1 2 3 4 5 6 var o = { 'name':'lee' }; var a
php正則判斷一個變數是否為正整數
方法1 判斷正整數 $keyword = '10'; // 0 1.1 1 if(preg_match("/^[1-9][0-9]*$/",$keyword)){ echo "是正整數!";
在shell中如何判斷一個變數是否為空
判斷一個指令碼中的變數是否為空,我寫了一個這樣的shell指令碼: #!/bin/sh #filename: test.sh para1= if [ ! -n $para1 ]; then echo "IS NULL" else echo "NOT NULL"
前端面試紀實(四):如何判斷一個變數是陣列:typeof和instanceof
1 typeof 這也是面試官問我的一個問題 我的第一反應是typeof。但是正中對方下懷。 > typeof [] 'object' 這樣返回的是object 這是一個JS很怪異的地方。 為什麼很怪異的呢,因為小白往往以{}和[]區分Array和O
如何判斷一個基本型別的變數的型別呢?
我們知道當變數是引用型別的時候,可以通過反射來判斷一個變數的型別。 可是當這個變數的型別是基本型別的時候呢,我們無法用反射來判斷他的型別,這個時候我們可以採用instanceof操作符來判斷。 下面
JS中各種變數型別在條件判斷為false的情況
var a = undefined; ->false var a = 0; ->false var a = 0.0; ->false var a = NaN; ->false var
面試題:判斷一個物件是不是陣列型別
<script> //判斷一個物件是不是陣列型別 typeof不能檢視所有型別 var obj1={x:1,y:2}, obj2=[1,2,3], obj3=new Date(); //1.判斷爹(原型物件)
java--建立一個Test類,包含有一個public許可權的int型成員變數與一個char型別的成員變數,觀察在main方法中的初始值。
//建立一個Test類 class Test1{ //包含有一個public許可權的int型成員變數與一個char型別的成員變數 public int a; public char c; } //主類 public class Test{ //主函式 publ
面試題-如何判斷一個物件是不是陣列型別
在前端面試中,我們經常會被問道,如何判斷一個物件是不是陣列型別,下面就這一點展開詳細的描述,並總結一下共有幾種方法。 1.我們首先回顧一下typeof操作符的用法 操作符可以用來檢測給定變數的資料型別,返回的值有以下幾種:undefined,boolean,string,number,object,f
如何判斷一個物件例項是不是某個型別,如Cat型別
<script> function cat(){} var b = new cat(); if(b instanceof cat){ console.log("a是cat") } if(b.constructor==cat){
js變數型別判斷 嚴格通用 Object.prototype.toString.call()
Object.prototype.toString.call()判斷結果: Object.prototype.toString.call(true) "[object Boolean]" Object.prototype.toString.call(1) "[object Number]" Object.p
JS判斷變數型別的方法總結
typeof操作符 用於檢測基本資料型別,返回值可能為: “number” “boolean” “string” “undefined” “object” “function”. 注意:typeof null返回”obje
Js中如何判斷一個物件為陣列型別
在說明如何判斷一個物件為陣列型別前,我們先鞏固下js的資料型別,js一共有六大資料型別:number、string、object、Boolean、null、undefined。 string: 由單引號或雙引號來說明,如"string"; number:陣列型別,比如整數、小數等; Boolea