Приколы с синтаксисом

Pixilang по русски
Post Reply
Absentiy
Posts: 3
Joined: Thu Dec 08, 2022 12:50 pm

Приколы с синтаксисом

Post by Absentiy »

Вечер добрый.
Заметил странность в поведении языка.
Вот код:

Code: Select all

a = 0
a || 1
if a == 1
{
clear(BLACK)
print("ggg",0,0)
frame(2000)
}
По какой то причине а равно 1. Судя по исходному коду компилятора, а || 1 интерпретируется как а = а || 1.
Это кстати, так работает со всеми операторами (+,-,*,/,%, т.д.)

Вопрос: Это фича или баг? А если фича, то почему нельзя было сделать операторы +=,-=,*=,/= и т.д.?
Absentiy
Posts: 3
Joined: Thu Dec 08, 2022 12:50 pm

Re: Приколы с синтаксисом

Post by Absentiy »

Code: Select all

fn prn()
{
clear(BLACK)
print("fff", 0, 0)
frame(2000)
}

fn test($pr)
{
	$pr()
}

test(prn)
Вот еще кое что если кому интересно, и да это работает.
User avatar
NightRadio
Site Admin
Posts: 3944
Joined: Fri Jan 23, 2004 12:28 am
Location: Ekaterinburg. Russia
Contact:

Re: Приколы с синтаксисом

Post by NightRadio »

Это фича или баг? А если фича, то почему нельзя было сделать операторы +=,-=,*=,/= и т.д.?
Фича. a+1 прикольнее и короче, чем a+=1 :)

Вот еще кое что если кому интересно, и да это работает.
Все верно. prn - это адрес функции. Его можно передавать в переменных и потом вызывать
Post Reply