2015-03-24 12 views

Trả lời

13

CẬP NHẬT: các phiên bản gần đây của Kotlin cho phép nhiều chức năng main ngay cả trong cùng một gói (nếu chúng nằm trong các tệp khác nhau).

Bạn có thể có nhiều chức năng chính trong dự án của bạn nhưng chỉ có một chức năng chính mỗi gói

Lý do tại sao bạn không thể làm nhiều chức năng chính trong gói là tất cả các chức năng trong gói được lưu trữ trong lớp trọn gói do đó bạn không thể có nhiều hàm trong một lớp có cùng chữ ký.

Vì vậy, nếu bạn muốn nhiều chức năng chính bạn phải xác định em trong các gói khác nhau

+1

Bạn bây giờ có thể có một tệp chính cho mỗi tệp Kotlin. Kotlin không còn tạo ra một lớp container cấp gói cho tất cả các hàm mức cao nhất, và thay vào đó tạo một lớp cho mỗi tệp. Nếu tên tệp là 'App' và nằm trong gói' foo.bar' với hàm 'main()' của bạn, thì tên lớp sẽ là 'foo.bar.AppKT' chứa' main() ' –

+0

bạn có thể cập nhật trả lời là hiện tại, xem bình luận ở trên) –

+0

Nếu bạn làm, thì tất cả nhưng một chức năng chính phải là riêng tư, nếu không sẽ có một xung đột tên. Hay tôi đang thiếu một cái gì đó? –

15

Ngoài comment Sergey Mashkov: bạn có thể đặt một main bên trong một đối tượng và đánh dấu nó @JvmStatic:

object Main { 
    @JvmStatic 
    fun main(args: Array<String>) { 
     println("Hello, world!") 
    } 
} 
Các vấn đề liên quan