Точка векторизации до или после имени функции? - PullRequest
5 голосов
/ 13 апреля 2020

Я могу векторизовать функцию, используя точечную запись:

a = Vector(0:10) .* 4 

Как и во многих примерах, я читал, что точка стоит перед звездочкой. Однако это не работает в следующем случае:

Complex.(a,a)

Здесь точка внезапно идет за именем функции.

Это предназначено? И есть ли правило?

1 Ответ

8 голосов
/ 13 апреля 2020

Для функций точка всегда идет за именем функции.

Для операторов, таких как, например, * или +, точка идет перед оператором. Однако вы можете заключить оператор в круглые скобки и добавить суффикс к точке.

Чтобы сделать это отличие еще более явным, рассмотрите этот пример, где мы применяем «умножение» с синтаксисом вызова функции:

x = rand(2,2)
sqrt.(x)
.*(x,x)
(*).(x,x)
x .* x

Все три последние команды выполняют одно и то же.

Подробнее см. В соответствующих разделах документации Julia: Синтаксис точек для функций векторизации и Векторизованные операторы "точка" .

...