Size: a a a

2020 May 27

Ɖ

Ɖrēw in F# Chat
Ну как минимум вокруг float32 скобки не нужны да и от new можно избавиться, если та мне диспозбл, но это чисто стилистически
источник

VS

Vasily Shapenko in F# Chat
Не получится проще
источник

RG

Romson Gardey in F# Chat
Ɖrēw
Ну как минимум вокруг float32 скобки не нужны да и от new можно избавиться, если та мне диспозбл, но это чисто стилистически
дисползбл.

Скорее интересует что я в двух случаях после -> написал идентичный код лол.

Можно ли исхитриться и как-то запихунть это в Integers(x, y, z) | Floats(x, y, z)

исход то один
источник

Ɖ

Ɖrēw in F# Chat
Вообще если и там и там тапл то по идее можно как 1 значение прокинуть?
источник

VS

Vasily Shapenko in F# Chat
Типы не сходятся
источник

Ɖ

Ɖrēw in F# Chat
Или дотнет типы в такое не могут
источник

Ɖ

Ɖrēw in F# Chat
А, там к флоату надо же
источник

RG

Romson Gardey in F# Chat
Понял, спасибо
источник

R

Roman in F# Chat
Romson Gardey
Ребята, подскажите плиз

Вот у меня матчинг. Можно же проще сделать? Я пробовал OR - но не пашет, несовместимо, в одном месте int * int * int, в другом float * float * float
можно проще
let inline float32Tuple (x,y,z) = (float32 x, float32 y, float32 z)

let ololo = function
   | Integers a -> float32Tuple a
   | Floats a -> float32Tuple a

let eazyV3 x = new SCNVector3(ololo x)
источник

R

Roman in F# Chat
хотя тут колво кода не меньше, конечно. Если то, что ты делаешь там, тебе нужно 1 раз, то оставь как есть
источник

В

Вячеслав in F# Chat
Слушайте я как то не понимаю генерки в f#. Если в сисорпе в классе я могу написать метод toJson<T> (T obj) и юзать этот метод с любым входным параметром то в F# именно в классах такое не получается. В обычных функциях с inline работает так как в сисорпе. Где я туплю, в литературе не замечал такого эффекта
источник

R

Roman in F# Chat
скинь код. Вообще, по умолчанию функции в фарше дженерик, так что можно просто toJson o писать. И если твой код действительно не завязан на тип, то будет дженерик тебе
источник

В

Вячеслав in F# Chat
Чуть позже, но проблема если я определял метод класса и делал вызов с одним типов, то второй он уже не давал
источник

A

Artemy in F# Chat
Так а если для метода, как и в сишарпе, задать явно обобщённый тип (member _.MyGenericMethod<'t>(x: 't))?
источник

SN

Shub Niggurath in F# Chat
Вячеслав
Слушайте я как то не понимаю генерки в f#. Если в сисорпе в классе я могу написать метод toJson<T> (T obj) и юзать этот метод с любым входным параметром то в F# именно в классах такое не получается. В обычных функциях с inline работает так как в сисорпе. Где я туплю, в литературе не замечал такого эффекта
почему это не получается? у меня сплошь и рядом
источник

SN

Shub Niggurath in F# Chat
а, погоди, ты хочешь, чтобы у тебя один метод был дженерик?
источник

SN

Shub Niggurath in F# Chat
member  __.MethodName<'t> : 't должно работать
источник

В

Вячеслав in F# Chat
источник

В

Вячеслав in F# Chat
type Data<'T> = {
   Value: 'T
}


type Foo() as self =

   let stringData = self.toJson {Value = "string"}
   let intData = self.toJson {Value = 10}


   member _.toJson<'t> (obj: 't) = JsonConvert.SerializeObject(obj)
источник

RM

Roman Melnikov in F# Chat
Вячеслав
type Data<'T> = {
   Value: 'T
}


type Foo() as self =

   let stringData = self.toJson {Value = "string"}
   let intData = self.toJson {Value = 10}


   member _.toJson<'t> (obj: 't) = JsonConvert.SerializeObject(obj)
toJson [|1;2;3;4|]
toJson [|"1";"2";"3";"4"|]
источник