2014-09-13 1 views
3

Есть ли причина, по которой кортежи, структуры и кортежи должны иметь непоследовательный синтаксис в Rust?Есть ли причина, по которой кортежи, структуры и кортежи должны иметь непоследовательный синтаксис в Rust?

Я все еще читаю инструкцию, так что может быть очевидный ответ на это, но не мог синтаксис быть объединены таким образом, чтобы все следующие законны ?:

struct {Int,Int} 
struct Foo{Int,Int} 
struct {a:Int,b:Int} 
struct Foo{a:int,b:Int} 
struct Foo{Int,a:Int,b:Int,Int} 

Если есть некоторые технические причины, чтобы избежать смешения названных и неназванных параметров, вы можете сохранить безымянные параметры в() и именованные параметры в {} ...

struct (Int,Int) 
struct Foo(Int,Int) 
struct {a:Int,b:Int} 
struct Foo{a:Int,b:Int} 
struct Foo(Int,Int){a:Int,b:Int} 
+1

ли ржавчина есть какие-либо ограничения выглядят опережающего как Go делает? Синтаксис Go сильно зависит от правила с одним маркером; это может объяснить «* фактическое ограничение *» - в отношении смешивания Tuples (порядковые элементы)/Records (названные элементы). В большинстве языков нет такого гибрида, где ограничение «* design *» не поддерживается построить. – user2864740

+0

Что будет делать 'struct (Int, Int)'? На самом деле не имеет смысла объявлять неназванный тип. – huon

+0

Возможно, это возможно *, но почему вы хотите объединить структуры и кортежи? Это разные объекты, предназначенные для разных целей. – Levans

ответ