Re: [轉載] [蟑螂賀失戀] 中階 LPC 第5~6章
看板mud_sanc (Sanctuary - 聖殿)作者laechan (小太保)時間17年前 (2009/03/06 17:24)推噓0(0推 0噓 0→)留言0則, 0人參與討論串2/2 (看更多)
第五章講字串的高級處理......其實那個大家應該都會了。
[..]
這個很好玩,假設一個 str = "abcdef", 那 str[0..2] 就是
等於 "abc" (取出第0個char~第2個char之間的東西)
作者有提到有趣的範例就是 "abcdef"[0..2] 這樣的語法,例
如...
write("abcdef"[0..2]+"\n"); 其結果就是秀 abc 這個字串。
sscanf
文中有提到一個特殊用法...
int x;
sscanf("145", "%d", x);
我們知道 atoi("145") 其實就會傳回整數的 145,但也可以
用上面的例子來實現,例如聖殿有把字串變整數的 atoi 函數
可用,但是沒有把浮點數變字串的函數怎麼辦?
float x = 1.05;
string str;
sscanf(x,"%f",str);
這樣 1.05 就會變成字串的 "1.05"了 <= 如果翻譯的文沒說錯的話XD
它另外有提到 %* 是要丟棄的東西,這個我沒實際用過,但它
的想法就是...
sscanf("20 int to baha","%d %s to %s",money,money_kind,who);
就是把 20 gold to baha 拆解出三個變數,但是在聖殿裡頭影特幣幾
乎是唯一的交易單位,我們雖讀出了 money_kind 但實際上這變數幾乎
用不到,這時我們就可以這樣寫..
sscanf("20 int to baha","%d %*s to %s",money,who);
這樣我們就不用去宣告 money_kind 這個東西了。
(然後 20 跟 to 之間依然還是得接東西,只是不一定要接 int)
::create()
這個其實是很簡單的概念,例如 ROOM = "/std/ob/room.c"
"/std/ob/room.c"
==========================================================
它宣告了一個 create() 函數
"/u/l/laechan/test.c"
==========================================================
inherit ROOM;
我自己的房間也宣告了一個 create() 函數
問題:我如何在我的 create() 中先套入 ROOM 裡頭的 create
呢?
方法有兩種..
1)ROOM->create();
2)::create();
作者就是在告訴你,如果你已經 inherit ROOM 了,那用 ::的
語法就可以把 ROOM 裡頭的 create 拿來用。
函式和變數標籤
這個我懶得研究,大致有三種,我簡單說一下我知道的...
static
如果我們在一個有用 save_object/restore_object 的系統
中有用 static 宣告一些變數的話,那這些變數是不會被存
進 .o 資料檔裡頭的,大樂透有些變數就是用 static 宣告
,因為並不是所有資料都得被存進去,例如..
static mixed nums=({"01","02",.......})
private(私有)
這個意思就是,例如我某個物件裡頭定義了一個函數..
private change_short(string str)
{
set("short",str);
}
然後我們要改這個物件的 short 而去 call 它..
call xxx;change_short;"一個房間"
基本上這個 call 是不被接受的,它只被這個物件自己呼叫
時才能改。
"一個私有變數或函式只能由宣告它的物件內部參考之"
例如我寫在這個物件裡頭的某個程式段有 change_short,
這就是合法的,外部 call 的方式就是非法的。
nomask
這主要是用在 inherit 裡頭,以上例來說,ROOM 有定義一
個 create,我自己的房間也有定義 creatr,但假若 ROOM
的定義是..
nomask create()
那我的 room 如果繼承 ROOM 的話就不能定義 create,因
為 ROOM 的 create 已經被設為 nomask 了。
private 跟 nomask 通常是用來保護一些東西用的。
(剛看完文,我覺得它跟我講的東西大概差不多,還好...XD)
Laechan
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 218.170.228.153
討論串 (同標題文章)
完整討論串 (本文為第 2 之 2 篇):
mud_sanc 近期熱門文章
PTT遊戲區 即時熱門文章
15
19