2009-02-24 45 views
17

Tôi đang ở giai đoạn mà tôi buộc phải học Lua, vậy bạn có gợi ý gì về cách tôi làm điều này không? Tôi không có nhiều kinh nghiệm với bất kỳ ngôn ngữ kịch bản nào khác ngoài PHP.Bắt đầu Lua-scripting

Vì vậy, một số đề xuất về "trang bắt đầu Lua"?

EDIT

Như một sự bổ sung cho các trang hướng dẫn tuyệt vời, bạn có thể xin đề nghị bất kỳ "chương trình" Tôi có thể làm cho điều đó sẽ giúp tôi tìm hiểu Lua? Hãy tưởng tượng tôi muốn học các con trỏ trong C++, tôi sẽ tạo một danh sách liên kết. Tôi muốn chạm vào những điều cơ bản trong Lua nhưng trong khi đó được mở cho những thứ khá tiên tiến.

+2

Một điểm nhỏ: Tên của Lua không phải là từ viết tắt. Nó được viết đúng là "Lua" hoặc thỉnh thoảng "lua", nhưng không bao giờ "LUA". Xem http://www.lua.org/about.html cho toàn bộ câu chuyện. – RBerteig

+0

Chỉ là về việc đưa ra nhận xét tương tự. : P Đây thường là dấu hiệu đầu tiên về những người đến với Lua. Bạn không cô đơn. – akauppi

+0

Lua không phải là Thỏa thuận người dùng cấp phép. ;) –

Trả lời

33

Trước hết, hãy thực hiện theo cách của bạn qua số Programming in Lua, bạn sẽ mất một hoặc hai ngày để có được ý chính của Lua.

Tuy nhiên tôi có thể cho bạn biết ngay lần đầu tiên của bạn thông qua bỏ qua coroutines và metatables, họ rất mạnh mẽ, nhưng phải mất một lúc để nắm bắt. Đầu tiên hãy tìm hiểu cú pháp, phạm vi (giống như PHP may mắn cho bạn) và các thư viện chuẩn.

Sau đó trở lại coroutines và metatables, đọc chúng thử chúng và lần thứ ba thông qua bạn có thể nhận được nó. Trừ khi bạn có nền tảng CS tốt, đây là những chủ đề phức tạp

Chỉnh sửa: Sách trực tuyến == trang web miễn phí. Bên cạnh đó nó là hướng dẫn tốt nhất hiện có trên Lua, tất cả mọi người học Lua với nó.

Ngoài ra: Nếu bạn là mục đích Lua cho World of Warcraft (có thể là không, nhưng chỉ trong trường hợp), bạn có thể kiểm tra this tutorial

Và: Đây là một chủ đề tips and tricks trên StackOverflow, có thể giúp cung cấp cho bạn một số ý tưởng về những gì mong đợi từ Lua

đề nghị chương trình/tập:

Vì bạn đang bước đầu nhìn Lua để phát triển web cố gắng hiểu và cải thiện ví dụ Data Description trong PIL. Nó sẽ cung cấp cho bạn một vài ý tưởng hay và một cảm giác tốt đẹp cho sức mạnh hay Lua.

Sau đó, bạn có thể muốn thử chơi với chương Data Structures, mặc dù Lua có một kiểu dữ liệu phức tạp, Bảng, chương đó sẽ cho bạn thấy những cách giống như Lua để làm một bảng làm bất cứ điều gì bạn cần.

Cuối cùng, khi bạn bắt đầu tìm kiếm các bảng meta, bạn nên thiết kế một hệ thống lớp (có với Lua bạn quyết định cách hoạt động của hệ thống lớp học). Tôi chắc rằng tất cả mọi người biết Lua đã tạo ra một tá hệ thống lớp học, một chương tốt để giúp bạn bắt đầu trên hệ thống lớp học là Object-Oriented Programming

Và nếu bạn có thời gian và biết C hoặc một cái gì đó tương tự (C# và Java kèm theo) thử mở rộng một ứng dụng bằng Lua, nhưng sẽ mất một hoặc hai tuần để làm

+0

Cảm ơn bạn rất nhiều. Tôi có một cái gì đó tốt hơn một CS-nền, tôi có (sớm) một mức độ trong Kỹ thuật phần mềm :) –

+0

Vâng Công nghệ phần mềm là tốt hơn trên chiến trường, nhưng Metatables và Coroutines là loại điều CS người sống nhiều hơn kỹ sư . –

+0

Được rồi, cảm ơn rất nhiều bạn! Nó không phải cho World of Warcraft, nhưng khi tôi biết LUA, có lẽ tôi nên thử nó trên một trò chơi. Đó là chủ yếu cho các công cụ Web bây giờ. –

2

Ngoài các đề xuất ở trên, cũng có Lua wiki cũng đáng để duyệt. Có một số lượng lớn các đoạn mã và công thức nấu ăn nhỏ có thể hữu ích.

1

Bạn có thể cài đặt World of Warcraft và tạo một bản mod cho nó (sử dụng Lua). Trên thực tế đó có thể là một ý tưởng tồi.

lẽ cố gắng tích hợp Lua vào một ứng dụng .NET (giả sử bạn là một lập trình viên C#) và làm điều gì đó 'vui vẻ' với nó:

Using Lua with C#

Hoặc chỉ cần duyệt lua.org

+0

Im sẽ bỏ qua một phần về WoW;) Nhưng C# -part là đáng yêu, cảm ơn bạn! –

4

Ngoài ra còn có một lượng lớn các dự án liên quan đến Lúa tại LuaForge.

Nếu bạn tình cờ sử dụng Windows làm nền tảng hàng ngày, thì tôi khuyên bạn nên nhận gói Lua for Windows làm điểm khởi đầu tốt đẹp. Nó bao gồm một loạt các mô-đun hữu ích tất cả được dựng sẵn và cài đặt cùng với trình thông dịch Lua.

Sau lần đầu tiên bạn vượt qua PiLreference manual, bạn sẽ muốn đọc Lua Programming Gems hiện chỉ có sẵn trong ấn bản giấy.

<plug> Hãy cân nhắc mua sách qua các liên kết liên kết tại Lua's books page hoặc LuaForge để hỗ trợ các dự án. </plug>

Chỉnh sửa: Đối với ý tưởng cho các dự án lập trình mà Lua phù hợp, hãy tìm các sự cố trong đó table cung cấp đòn bẩy. Các bảng là trung tâm của Lua, vì ngay cả các biến toàn cục cũng chỉ là các trường trong bảng. Bảng có thể được lập chỉ mục theo giá trị của bất kỳ loại dữ liệu nào ngoại trừ nil, nhưng có triển khai đặc biệt hiệu quả nếu được sử dụng làm mảng.

Một quirk mà đi lên những người đến từ một nền giống như C là tất cả mọi thứ trong Lua được lập chỉ mục tự nhiên bắt đầu từ 1. Chuỗi được lập chỉ mục từ 1, mảng bắt đầu từ 1, vv. Đừng lo lắng về nó quá nhiều, không có gì sai khi sử dụng a[0], nhưng độ dài của mảng được cho bởi #a được xác định giả định rằng mảng bắt đầu bằng a[1].

Một cách khác là các hàm không thực sự có tên. Chúng là các giá trị lớp đầu tiên thường được lưu trữ trong một số biến có tên. Đường cú pháp làm cho nó trông giống như họ có tên, nhưng đó chỉ là một sự tiện lợi.

Biến đổi là một tính năng đặc biệt Lua-ish của bảng (và các loại khác, nhưng đó là một chủ đề thực sự nâng cao) là cơ sở cho hầu hết các lược đồ để làm những điều hướng đối tượng trong Lua.

Đóng cửa và các cuộc gọi đuôi thực là các tính năng khác của Lua mà không thường được tìm thấy trong các ngôn ngữ kịch bản nhỏ có thể thực sự làm cho một số thành ngữ dễ thực hiện.

+0

Phản hồi tuyệt vời! Cảm ơn! –

4

Vui để xem tất cả các danh sách phức tạp này (mặc dù chúng chắc chắn là chính xác). Trở lại năm 2002, tôi đã đọc về 20 trang đầu tiên của hướng dẫn tham khảo Lua và bắt đầu sử dụng nó. Nó thực sự là đơn giản. Lua (và ANSI C) là một vài ngôn ngữ thực sự phù hợp với tâm trí của một người cùng một lúc - và ở đó. Đối với những người khác, ít nhất tôi cần phải liên tục làm một số việc học lại.

Lưu ý rằng việc đến nghĩ rằng ở Lua sẽ mất thời gian. Tôi nghĩ rằng tôi là 6 tháng hoặc lâu hơn. Khi đến từ C/C++, chúng tôi có xu hướng giải quyết vấn đề theo một số cách nhất định. Lua có thể cung cấp phương tiện tốt hơn (tức là thông qua việc sử dụng các bảng) nhưng phải mất một lúc để bắt đầu nhìn thấy chúng. Sự chuyển đổi này sang mức trừu tượng cao hơn tương tự như sự thay đổi Assembler-> C trong những năm 1980. Nhiều người vẫn mã hóa một lúc trong C như thể nó chỉ là một bộ lắp ráp di động.

1

Tôi đã viết một quick-start guide to Lua ngắn cho những người sử dụng nó trên một dự án mà tôi đang làm việc. Nếu bạn đã quen thuộc với các ngôn ngữ kịch bản khác, nó có thể giúp bạn bắt đầu và chạy nhanh. Các docs on Lua.org là rất tốt và nên bao gồm hầu hết mọi thứ khác mà bạn cần. Lúa là một ngôn ngữ khá nhỏ và có thể học khá nhanh.

1

Đây là một đề xuất khá chung chung, nhưng nếu bạn muốn bắt đầu bằng ngôn ngữ lập trình mới với tư cách là kỹ sư phần mềm, thật thú vị khi bắt đầu thực hiện các vấn đề ở số Project Euler bằng ngôn ngữ lập trình mới của bạn. Tôi đã làm điều này với Python gần đây và thấy nó được truyền cảm hứng và mang lại rất nhiều sự nhiệt tình cho việc viết mã.

+0

Trang web tuyệt vời! Cảm ơn! –