mam jedno pytanie ogólne w Perl.What jest sens poniżej liniiJakie jest znaczenie tych klawiszy liniowych (% S) = @ C_fields ;?
keys(%S)[email protected]_fields;
mam jedno pytanie ogólne w Perl.What jest sens poniżej liniiJakie jest znaczenie tych klawiszy liniowych (% S) = @ C_fields ;?
keys(%S)[email protected]_fields;
keys(%S)[email protected]_fields;
jest identyczna keys(%S) = scalar @C_fields;
stosowany jako lwartości, klucze pozwala do zwiększyć liczbę mieszających łyżek przydzielonych dla danego skrótu. Dzięki temu możesz uzyskać pewną efektywność, jeśli wiesz, że hash się zwiększy. (Jest to podobne do pre-rozszerzenie tablicę poprzez przypisanie większej liczby do tablicy $ #). Jeśli powiesz
keys %hash = 200;
następnie% hash będzie miała co najmniej 200 wiadra przeznaczone na nią - 256 z nich w rzeczywistości, ponieważ zaokrągla się do następnej potęgi dwóch.
Więc hash %S
dostanie ilość segmentów, które są co najmniej wielkość @C_fields
tablicy.
Więcej na temat kluczy/tematu wiadra http://stackoverflow.com/questions/6723172/what-is-4-16-in-hashes –
[Ten artykuł] (http://blog.codinghorror.com/code-tells- you-how-comments-tell-you-why /) przychodzi do głowy, szczególnie w punkcie końcowym. – RobEarl
@RobEarl masz na myśli, aby wyjaśnić powyżej, dlaczego chciałbyś ręcznie przypisać liczbę wiaderek w pierwszej kolejności? –
linia wydaje się być śmieciem. wyodrębniasz wartości zarówno dla LHS, jak i dla RHS, które nie mają znaczenia. – Vijay
Niezupełnie - wywoływanie 'keys' w kontekście void robi _something_, ale bardzo wątpię, że to jest to, co zamierzał oryginalny programista. – Sobrique