今天是大年三十,第一次不在家過年,別有一番滋味!
我們先來看看有哪些型別屬於值型別,哪些屬於引用型別。
值型別
包含:
有其他語言開發經驗的童鞋都知道,值型別傳值時,會臨時拷貝乙份內容出來,而不是拷貝指標,當你修改新的變數時,不會影響原來的變數的值。
例如:
int a = 100; // a == 100
int b = a; // b == 100,a == 100
b = 300; // b == 300,a == 100
由上面的資料看,執行b = a
時,會將a
的值臨時拷貝乙份傳給b
,所以當你修改b
時,其實與a
沒任何關係。
引用型別
包含:
引用型別,賦值時,我們可以值傳遞
,也可以引用
即位址傳遞,如果是值傳遞,和上面的案例一樣,修改新變數時,不會影響原來的變數值,如果是引用
傳遞,那麼當你修改新變數時,原來變數的值會跟著變化,這是因為新就變數同時指向同乙個位址的原因。
引用型別中如何模擬值傳遞?
值傳遞偽**(以ios中可變字串nsmutablestring為例子):
//建立乙個可變的字串name
nsmutablestring *name = [@"liyuechun" mutablecopy]; // name == "liyuechun"
nsmutablestring *name1 = [name copy]; //name1 == "liyuechun", name == "liyuechun"
name1 = "liyc1215"; //name1 == "liyc1215",name == "liyuechun"
引用型別中如何模擬引用傳遞?
//建立乙個可變的字串name
nsmutablestring *name = [@"liyuechun" mutablecopy]; // name == "liyuechun"
nsmutablestring *name1 = name; //name1 == "liyuechun", name == "liyuechun"
name1 = "liyc1215"; //name1 == "liyc1215",name == "liyc1215"
在本節中,主要是讓大家知道solidity程式語言中有哪些是值型別,哪些是引用型別,以及值型別和引用型別的簡單區別。【ps:solidity值型別中,賦值時我們始終記住傳的是值,改變新變數,不會影響原來的邊來幹值,而引用型別就有兩種可能,
var型別:
var並不是表示動態型別,而是讓書寫更簡單,乙個值在分配給var變數時,其型別就已經確定了,如果要賦值給其他型別,仍要進行強制型別轉換。
例子:在var x = 1 / 4
中,x
的實際型別是ufixed0x8
。而在var x = 1/ 3
中,型別會是ufixedox256
,因為這個結果表示是無限的,所以他只能是無限接近。
**自:孔壹學院)
solidity基礎知識
自己學習會參考到的一些基礎知識,記錄一下,主要包括 call 方法 delegatecall send 與fallback keccak payable宣告的函式可以從呼叫者那裡接受ether,如果傳送方沒有提供ether,則呼叫可能會失敗。也就是說乙個函式宣告為payable,那麼就只能收取eth...
solidity基礎入門知識(一)整型和位址
1.solidity檔案的擴充套件名為.sol 2.pragma solidity 0.4.0 表示源程式在大於等於0.4.0版本的編譯器中可以正常工作,在大於等於0.5.0版本的編譯器中無法工作。3.資料型別 solidity是靜態語言,所有變數在定義的時候需要定義好資料型別 1 整數 常用的無符...
python入門(二)基礎知識
在前乙個章節,我介紹了如何搭建乙個比較友好的python學習環境,在這一節中我將快速過一遍基礎知識,為實際應用展開鋪墊 1 與c c 不同的是,python的 塊不使用 而是使用縮進來寫。並且縮排的空格數必須統一否則會報錯。2 在python中單行注釋採用 多行注釋採用 或 3 在python中,一...