Je n'arrive pas à comprendre comment obtenir Objective-c pour auto-box mes primitives.Boxe automatique de primitives
Je suppose que je serais en mesure de faire ce qui suit
float foo = 12.5f;
NSNumber* bar;
bar = foo;
Cependant, je trouve que je l'ai utilisé la méthode plus détaillée de
float foo = 12.5f;
NSNumber* bar;
bar = [NSNumber numberWithFloat:foo];
Est-ce que je fais mal ou est ce aussi bon que possible?
« incommode » plutôt que « malheureusement ». Les langages avec auto- (dé) boxe ne sont pas exempts de problèmes - en fait, beaucoup d'entre eux sont difficiles à repérer et peuvent causer des problèmes étranges. Par exemple, Effective Java et Java Puzzlers consacrent pas mal de pages à dissiper la confusion sur la façon dont les nombres agissent de façon inattendue dans diverses situations. Il serait très pratique d'avoir une auto-boxing, mais l'ajouter à la langue elle-même (comme vous le dites) serait non-trivial, et probablement rempli de périls cachés. –
@Quinn Absolument. J'essayais vraiment de faire valoir que Objective-C ne pouvait pas facilement faire un autoboxing, sans essayer de porter un jugement sur la situation. N'importe lequel d'entre nous qui a "apprécié" l'autoboxing de Java sait que ce n'est pas un repas gratuit. J'ai entendu que C# est meilleur, mais je n'ai pas d'expérience personnelle avec laquelle juger. –
Qui revient 2 ans plus tard pour ajuster sa réponse? Incroyable. Je cherchais la nouvelle syntaxe, merci! Donc, il n'y a pas de déballage automatique, bien sûr, non? –