พื้นที่ฝึก

Objective C

เส้นทางฝึก Objective C ตั้งแต่ศูนย์

นิยามก่อน

Objective C คืออะไร

Objective C ใช้เขียนคำสั่งที่ชัดเจน ที่นี่เรียนเป็น เส้นทางฝึก Objective C ตั้งแต่ศูนย์ เริ่มจากภาพเดียว input ผ่านขั้นตอนแล้วกลายเป็น output

ข้อมูลรันขั้นต่ำไฟล์ main.mรัน clang main.m -framework Foundation && ./a.outนิสัย เรียน Objective C ทีละส่วนเล็ก แล้วพิมพ์ตัวอย่างสั้นและรัน
โปรแกรม

ชุดคำสั่งที่ทำงานตามลำดับ

ค่าและตัวแปร

ค่าคือข้อมูล ตัวแปรคือชื่อที่เก็บข้อมูล

ฟังก์ชัน

งานย่อยที่มีชื่อ รับ input และสร้างผลลัพธ์

runtime

Clang Objective C รันโค้ดจาก main.m

โค้ดแรกที่อ่านง่าย

ผลลัพธ์ของโปรแกรม

entry point output syntax NSLog
NSLog(@"%d", 42);
ผลลัพธ์ 42

ตระกูลภาษา

ผังตระกูล Objective C

ดูว่า Objective C มาจากไหน ใกล้กับภาษาใด และควรเรียนอะไรต่อ

ราก
CSmalltalk
ปัจจุบันObjective Cตระกูล object oriented
ตระกูลตระกูล object oriented
เหมาะกับ

เหมาะกับ เส้นทางฝึก Objective C ตั้งแต่ศูนย์

เริ่มจากศูนย์

1อ่านกฎหนึ่งข้อ2ทายผลลัพธ์3พิมพ์จากความจำ4รันการตรวจ5ทำซ้ำโดยเปลี่ยนหนึ่งจุด

คลังคำถาม

ค้นหาก่อนฝึก

เลือกขั้นหรือค้นหาแบบฝึกของภาษานี้ แล้วเปิดข้อที่ต้องการทันที

18 รายการ
Q 1ตัวเลือกขั้น 1 นิยาม

Objective C ข้อ 1

Objective C ข้อ 1 เลือกคำอธิบายที่ตรงกับ พิมพ์ค่าออกมา ที่สุด

Q 2ตัวเลือกขั้น 1 นิยาม

Objective C ข้อ 2

Objective C ข้อ 2 เลือกคำอธิบายที่ตรงกับ ตั้งชื่อให้ค่า ที่สุด

Q 3ตัวเลือกขั้น 1 นิยาม

Objective C ข้อ 3

Objective C ข้อ 3 เลือกคำอธิบายที่ตรงกับ function ที่ใช้ซ้ำได้ ที่สุด

Q 4ตัวเลือกขั้น 1 นิยาม

Objective C ข้อ 4

Objective C ข้อ 4 เลือกคำอธิบายที่ตรงกับ collection พื้นฐาน ที่สุด

Q 5ตัวเลือกขั้น 1 นิยาม

Objective C ข้อ 5

Objective C ข้อ 5 เลือกคำอธิบายที่ตรงกับ พิมพ์ค่าออกมา ที่สุด

Q 6ตัวเลือกขั้น 1 นิยาม

Objective C ข้อ 6

Objective C ข้อ 6 เลือกคำอธิบายที่ตรงกับ ตั้งชื่อให้ค่า ที่สุด

Q 7ตัวเลือกขั้น 1 นิยาม

Objective C ข้อ 7

Objective C ข้อ 7 เลือกคำอธิบายที่ตรงกับ function ที่ใช้ซ้ำได้ ที่สุด

Q 8ตัวเลือกขั้น 1 นิยาม

Objective C ข้อ 8

Objective C ข้อ 8 เลือกคำอธิบายที่ตรงกับ collection พื้นฐาน ที่สุด

Q 9ตัวเลือกขั้น 1 นิยาม

Objective C ข้อ 9

Objective C ข้อ 9 เลือกคำอธิบายที่ตรงกับ พิมพ์ค่าออกมา ที่สุด

Q 10ตัวเลือกขั้น 1 นิยาม

Objective C ข้อ 10

Objective C ข้อ 10 เลือกคำอธิบายที่ตรงกับ ตั้งชื่อให้ค่า ที่สุด

Q 11ตัวเลือกขั้น 1 นิยาม

Objective C ข้อ 11

Objective C ข้อ 11 เลือกคำอธิบายที่ตรงกับ function ที่ใช้ซ้ำได้ ที่สุด

Q 12ตัวเลือกขั้น 1 นิยาม

Objective C ข้อ 12

Objective C ข้อ 12 เลือกคำอธิบายที่ตรงกับ collection พื้นฐาน ที่สุด

Q 13ตัวเลือกขั้น 1 นิยาม

Objective C ข้อ 13

Objective C ข้อ 13 เลือกคำอธิบายที่ตรงกับ พิมพ์ค่าออกมา ที่สุด

Q 14ตัวเลือกขั้น 1 นิยาม

Objective C ข้อ 14

Objective C ข้อ 14 เลือกคำอธิบายที่ตรงกับ ตั้งชื่อให้ค่า ที่สุด

Q 15ตัวเลือกขั้น 1 นิยาม

Objective C ข้อ 15

Objective C ข้อ 15 เลือกคำอธิบายที่ตรงกับ function ที่ใช้ซ้ำได้ ที่สุด

Q 16ตัวเลือกขั้น 1 นิยาม

Objective C ข้อ 16

Objective C ข้อ 16 เลือกคำอธิบายที่ตรงกับ collection พื้นฐาน ที่สุด

Q 17ตัวเลือกขั้น 1 นิยาม

Objective C ข้อ 17

Objective C ข้อ 17 เลือกคำอธิบายที่ตรงกับ พิมพ์ค่าออกมา ที่สุด

Q 18ตัวเลือกขั้น 1 นิยาม

Objective C ข้อ 18

Objective C ข้อ 18 เลือกคำอธิบายที่ตรงกับ ตั้งชื่อให้ค่า ที่สุด

ปรนัย

Objective C ข้อ 1

Q 1ตัวเลือกใหม่

Objective C ข้อ 1 เลือกคำอธิบายที่ตรงกับ พิมพ์ค่าออกมา ที่สุด

NSLog(@"%d", 42);

อ้างอิง

รูปแบบของ main.m

Clang Objective Cclang main.m -framework Foundation && ./a.out
ทวนจากความจำอ่านจุดเล็กแล้วเขียนใหม่โดยไม่ดู
ไล่โค้ดเขียนค่าตัวแปรทีละบรรทัดก่อนรัน
พิมพ์เองคัดลอกให้น้อย พิมพ์ให้มาก แล้วแก้ error ทีละจุด

entry point output syntax NSLog

ผลลัพธ์ของโปรแกรม

NSLog(@"%d", 42);
  • Run the smallest file first
  • Print one known value
  • Check the output before adding more code

variables assignment types int

ค่าและชื่อ

int total = 42;
NSLog(@"%d", total);
  • Give values readable names
  • Keep one idea per line while learning
  • Trace the value before changing it

function collection NSArray

ฟังก์ชันและ collection

int add(int a, int b) {
  return a + b;
}

NSArray *scores = @[@40, @2];
NSLog(@"%lu", (unsigned long)scores.count);
  • Keep functions small
  • Return useful values
  • Use the common collection before reaching for frameworks