Pages (2): 1 2   
hengmana   05-13-2012, 03:31 PM
#1
เริ่มเครื่องหมายก่อน
@ กับ @@
= กับ ==
.. กับ ...
: กับ ::
มันใช้ต่างกันยังไงครับ???
This post was last modified: 05-14-2012, 08:55 AM by hengmana.
toonyoza   05-13-2012, 11:55 PM
#2
(05-13-2012, 03:31 PM)hengmana Wrote: เริ่มเครื่องหมายก่อน
@ กับ @@
= กับ ==
.. กับ ...
: กับ ::
มันใช้ต่างกันยังไงครับ???
1. @ ใช้แทนตัวแปรที่เรียกใช้ได้ทั้ง class @@ ถ้าจำไม่ผิดเป็นการ clone ตัวแปร @ อีกที
2. = คือกำหนดตัวแปร @a = 1 แต่ == ใช้สำหรับ คอดิชั่น(เงื่อนไข) เช่น if @a == 1
3. .. คือ เป็นการไล่จำนวนนับ จนถึงเลขตัวสุดถ้ายที่กำหนดไว้ เช่น 1..9 ก็คือ 1 ถึง 9
... คือ ไล่จำนวนนับ แต่ไม่ถึงตัวสุดถ้าย เช่น 1...9 ก็คือ 1 ถึง 8
4. : อันนี้ไม่แน่ใจไม่เคยใช้ ส่วน :: เป็นตัวอ้างอิงถือตัวแปรของ module
ตรง ข้อ 4 ผมไม่มั่นใจเท่าไหร่ใครรู้แน่นจริง ๆ ก้ช่วยโพสต่อและกันนะฮะ

[Image: toonyoza.png]
angelix   06-02-2012, 11:15 AM
#4
ข้อแก้ข้อ 1 หน่อย ;w;
ถ้าใครเคยเขียนภาษาที่มี keyword static มาแล้ว
@ คล้าย non-static variable ใช้ภายใน instance ของ class เท่านั้น
ส่วน @@ คล้าย static variable ใช้ร่วมกันทุก instance ของ class

? กับ : น่าจะเป็น ?: มากกว่านะ มันคือ if แบบย่อครับ เช่น @a == 1 ? @a = 3 : @a = 0 และ
@a = (@a == 1 ? 3 : 0)
แปลว่า
if @a == 1
@a = 3
else
@a = 0

ส่วน => ใช้เวลาประกาศ Hash ครับ @a = {"a" => 1, "b" => 2} บลาๆ
This post was last modified: 06-02-2012, 11:16 AM by angelix.
hengmana   06-02-2012, 01:10 PM
#5
;w; แล้ว if ที่อยู่หลังประโยด(คำสั่ง)
self.damage = Integer(self.maxhp * 0.10) if maxhp >= 100
ทำตามเงื่อนไข ในบรรทัดนั้นใช่ไหมครับ
angelix   06-03-2012, 12:04 AM
#6
ใช่ครับ เป็นวิธีเขียนย่อเหมือนกัน เหมือน
if maxhp >= 100
self.damage = Integer(self.maxhp * 0.10)
end
hengmana   06-03-2012, 02:21 PM
#7
เครื่องหมายวงเล็บต่างๆ
( ) กับ [ ] กับ { }
สรุปใช้เหมือนๆกันรึเปล่าครับ
angelix   06-05-2012, 05:55 PM
#8
มันมีวิธีใช้หลายอย่างมากเลยนะ วงเล็บแต่ละแบบนั่นน่ะ และไม่เหมือนกันด้วย แต่ถ้าเอาหลักๆจะแบ่งเป็นสองกลุ่มใหญ่ คือ
- เป็น Syntax
- เป็น Operator

กรณี ()
- Syntax ใช้ในการกำหนด parameter list ของ method , constructor เช่น
def abc(a,b,c)
...
end
- Operator ใช้ในการกำหนดลำดับความสำคัญ (Precedence) เช่น 3-(2*2) ก็ทำในวงเล็บก่อน

กรณี []
- Syntax ใช้ประกาศ array เช่น @a = [1,2,3]
- Operator จำไม่ได้ แต่คุ้นๆว่ามันประกาศ def[] ได้

กรณี {}
- Syntax ใช้ประกาศ hash เช่น @a = {1=>3, 2=>0}
- Operator ไม่น่ามีมั้ง???
hengmana   06-05-2012, 06:44 PM
#9
แล้ว .max กับ .min ที่อยู่หลัง[ ] แล้วครับ
[a, b].max กับ [a, b].min มันอ่านค่ายังไง
ตัวอย่าง Game_Battler 1
n = [[base_maxhp + @maxhp_plus, 1].max, 999999].min
angelix   06-05-2012, 10:22 PM
#10
อย่างที่บอกครับว่า [] ใช้ประกาศ array
[a,b] ก็คือ array object ตัวนึง
ซึ่ง array เนี้ยมันมี method max กับ min ไว้หาค่าสูงสุด/ต่ำสุด
ดังนั้น [a,b].max จะเหมือนกับ
@a = [a,b]
@a.max
ซึ่งคืนค่าสูงสุดใน array ส่วน min ก็เหมือนกันแต่คืนค่าต่ำสุด
Pages (2): 1 2   
  
Users browsing this thread: 3 Guest(s)
Powered By MyBB, © 2002-2024 MyBB Group.
Made with by Curves UI.