2011-02-05 39 views
42

này hoạt động:Làm thế nào để trở về đối tượng một cách rõ ràng trong CoffeeScript

myfunc =() -> 
    id: 3 
    name: 'myname' 

Nhưng tôi muốn được rõ ràng về đối tượng trở về.

myfunc =() -> 
    return 
     id: 3 
     name: 'myname' 

Nhưng tôi gặp lỗi "KHÔNG mong đợi 'INDENT'". Có gì sai với mã trên?

+1

Xem https://github.com/jashkenas/coffee-script/issues/1263. –

+2

bạn nên không trả lại một cách rõ ràng, vì coffeescript luôn luôn trả về nội dung. làm rõ ràng nó không chỉ là thừa, mà có thể lừa người đọc tin rằng nó tạo ra một sự khác biệt và các hàm không có giá trị trả về rõ ràng sẽ trả về 'undefined' như trong JS. –

+0

@flyingsheep "không chỉ thừa, nhưng có thể lừa người đọc tin rằng nó tạo nên sự khác biệt" Đó là một điểm quan trọng và được áp dụng cho rất nhiều khác biệt. –

Trả lời

84
myFunc = -> 
    return { 
    id : 3 
    name : 'myname' 
    } 

myFunc = -> 
    return {} = 
    id : 3 
    name : 'myname' 

myFunc = -> 
    # return 
    id : 3 
    name : 'myname' 
+14

Tôi đặc biệt. như người cuối cùng ;-) – Juve

+0

thứ 3 là rất tốt – alsotang

+0

vâng thứ 3 là tuyệt vời/vui nhộn – xst

10

bạn nên đặt giá trị lợi nhuận trên cùng một dòng hoặc bọc nó trong ():

myFunc =() -> 
    return id:3, name:'myname' 

myFunc =() -> 
    return (
    id: 3 
    name: 'myname' 
) 
1

Những câu trả lời trước đó đều đúng. Này hoạt động quá:

myFunc =() -> 
    { 
     id: 3 
     name: 'myname' 
    } 
2

Tôi nghĩ rằng cách tốt nhất là

myFunc = -> 
    return (
    id: 3 
    name: 'myname' 
) 

vì nó phù hợp với triết lý của lập trình chức năng.

Các vấn đề liên quan