В PHP оба 'my name'
и "my name"
являются строками. Вы можете узнать больше об этом в руководстве по PHP .
Вещь, которую вы должны знать, это
$a = 'name';
$b = "my $a"; == 'my name'
$c = 'my $a'; != 'my name'
. В PHP люди используют одиночную кавычку для определения константа, например 'a'
, 'my name'
, 'abc xyz'
, используя двойную кавычку для определения строки, содержащей идентификатор, такой как "a $b $c $d"
.
И еще:
echo 'my name';
быстрее, чем
echo "my name";
, но
echo 'my ' . $a;
медленнее, чем
echo "my $a";
Это верно для других, используемых в строке.
Если вы знаете (или хотите учиться), как реализовать bignumber, определите свой собственный тип в swift (предположительно как struct), затем реализуйте перегрузки арифметических операторов +, - и т. д. и все, что вам нужно работа с этими большими номерами.
Здесь есть реализация в C ++ здесь , но если вы немного поделитесь Google, вы можете найти другие алгоритмы, которые вы можете перевести в быстрый код или примеры в другие языки (если вы не знакомы с C ++)
Swift уже определяет 2 "расширенных" типа с плавающей запятой с именами Float80
и Float96
:
Float80 80 bit MacOS float: 1 sign bit, 15 exponent bits, 1 integer bit, 63 fraction bits
Float96 96 bit 68881 float: 1 sign bit, 15 exponent bits, 16 pad bits, 1 integer bit, 63 fraction bits
, но, по-видимому, перегрузка оператора не определена - это просто «изолированные» структуры.
Я работаю над библиотекой BigNumber, с помощью которой вы можете сделать некоторые огромные вычисления. Фактически библиотека основана на библиотеке GNU Multiple Precision (GMP), и я написал обертку Objective-C / Swift. В настоящее время возможна большая целая математика, в том числе большая перегрузка оператора. Пример кода выглядит следующим образом:
var err : NSError?
var bi1 = BigInt(nr: 12468642135797531)
var bi2 = BigInt(nr: "12345678901011121314151617181920", error: &err)
var res = bi1 * bi2
println("Multiply 2 BigInts: bi1 * bi2 = \(res.toString())")
, который приводит к:
Multiply 2 BigInts: bi1 * bi2 = 153933852140173822960829726365674325601913839520
Надеюсь, что библиотека (см. https://github.com/githotto/ osxgmp ) может быть вам полезен.