Перечень списков CoffeeScript / Массив - PullRequest
2 голосов
/ 24 апреля 2011

Понимания списков CoffeeScript немного отличаются от понимания Pythons ... какой из этих способов людям нравится возвращать списочные понимания?

return elem+1 for elem in [1,2,3] # returns 3+1
return [elem+1 for elem in [1,2,3]].pop() # returns [2,3,4]
return (elem+1 for elem in [1,2,3]) # returns [2,3,4]

В Python я просто написал бы:

return [elem+1 for elem in [1,2,3]]

И он возвращает список правильно, а не список списков, как это было бы в CoffeeScript.

Ответы [ 2 ]

9 голосов
/ 25 апреля 2011

Каким из этих способов людям нравится возвращать списки?

return elem+1 for elem in [1,2,3] # returns 3+1
return [elem+1 for elem in [1,2,3]].pop() # returns [2,3,4]
return (elem+1 for elem in [1,2,3]) # returns [2,3,4]

Ну, из трех вариантов, конечно же, №3.Но лучший стилистический выбор на самом деле таков:

elem+1 for elem in [1,2,3] # returns [2,3,4]

В качестве последней строки функции любое выражение expr эквивалентно return (expr).Ключевое слово return очень редко необходимо.

2 голосов
/ 24 апреля 2011

Я никогда не использовал CoffeeScript, но если бы мои варианты давали неверный результат, делая глупый [...].pop() клудж или просто используя набор скобок, я бы пошел в скобки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...