Sugestia nazwania metody?

Jak mogłaby nazywać się metoda zwracająca tekst jako integer? (* możesz oddać maksymalnie 3 głosy)
`group('[0-9]')->parseInt()`
26%
26% [6]
`group('[0-9]')->asInt()`
30%
30% [7]
`group('[0-9]')->int()`
4%
4% [1]
`group('[0-9]')->toInt()`
39%
39% [9]
Odpowiedz Nowy wątek
2019-09-03 13:20
0

Piszą znowu w sprawie T-Regx'a. Czasem pisze się regexp-y/grupy - np takie: [0-9]{2,}, która oczywiście musi się składać z cyfr i wtedy lepiej operować na zmiennych typu int, a nie string. Metoda już istnieje, ale nie jestem przekonany co do tego czy powinna się nazywać tak jak teraz. Jakie jest wasze zdanie?


edytowany 1x, ostatnio: TomRiddle, 2019-09-03 16:42

Pozostało 580 znaków

2019-09-03 14:14
2

int() ... nieeee. Gdyby nie ikonki w podpowiedziach IDE nie wiedziałbym czy to jest jakieś publiczne pole czy metoda :D

Jeżeli nie lubisz int() to zagłosuj nasz wszystkie oprócz int(). Trochę jak taki głos -1 :D - TomRiddle 2019-09-03 16:43

Pozostało 580 znaków

2019-09-03 15:53
2

a może toInt


Chcesz pomocy - pokaż kod - abrakadabra źle działa z techniką.

Pozostało 580 znaków

2019-09-03 16:42
0
abrakadaber napisał(a):

a może toInt

Dodałem odpowiedź toInt(). Można oddać głos


Teraz piszesz? :( - PerlMonk 2019-09-03 16:46
jak ktoś już zagłosował, to nie da się poprawić. W takim razie proszę mój głos przenieść z asInt do toInt - cerrato 2019-09-03 16:47
@cerrato: to chyba jakiś moderator powinen :D - TomRiddle 2019-09-03 17:18
tego się (chyba) nie da, więc proszę o uwzględnienie mojej sugestii podczas oceny wyników. - cerrato 2019-09-03 17:26

Pozostało 580 znaków

2019-09-03 17:21
0

Nie bardzo rozumiem, jak miałoby wyglądać "operowanie na zmiennych typu int" w tym przypadku?


edytowany 1x, ostatnio: Silv, 2019-09-03 17:21

Pozostało 580 znaków

2019-09-03 17:24
1
Silv napisał(a):

Nie bardzo rozumiem, jak miałoby wyglądać operowanie na zmiennych typu int w tym przypadku?

Dokumentacja: https://t-regx.com/docs/match-details#integers

$text = "Key:pairs are as follows Foo:123 Bar:456";
$pattern = ;

pattern('(\w{3}):(\d{3})')->match($text)->first(function (Match $details) {
  $key = $details->group(1)->text();
  $value = $details->group(2)->asInt();   // or parseInt(), toInt();

  var_dump($key);    // string 'Foo';
  var_dump($value);  // int 123;
});

edytowany 1x, ostatnio: TomRiddle, 2019-09-03 17:26

Pozostało 580 znaków

2019-09-03 17:26
0

OK, chyba rozumiem, ale nie widzę jeszcze w tym kodzie przewagi int nad string.


Pozostało 580 znaków

2019-09-03 17:28
0
Silv napisał(a):

OK, chyba rozumiem, ale nie widzę jeszcze w tym kodzie przewagi int nad string.

Myślę że gdybyś miał np \w{3}:\w{3} i dopasował to do tekstu Foo:Bar, i chciał użyć Bar jako int, to T-Regx rzuci NumberFormatException (że Bar to nie jest int). Spójność danych.


edytowany 1x, ostatnio: TomRiddle, 2019-09-03 17:28

Pozostało 580 znaków

2019-09-03 17:30
0

Ale czy to wtedy byłaby kwestia T-Regexa, czy też ogólnie PHP? Moim zdaniem to PHP powinien posiadać coś na kształt klasy string_utils/int_utils, w której to klasie byłoby toInt (czy inna nazwa).


Pozostało 580 znaków

2019-09-03 17:33
0
Silv napisał(a):

Ale czy to wtedy byłaby kwestia T-Regexa, czy też ogólnie PHP? Moim zdaniem to PHP powinien posiadać coś na kształt klasy string_utils/int_utils, w której to klasie byłoby toInt (czy inna nazwa).

PHP spróbuje każdego stringa zamienić na int, nawet "1e3" na 1000 albo "010" na 8 (ósemkowy). Również " 1" to jest 1 w PHP.


Pozostało 580 znaków

2019-09-03 17:34
0

Rozumiem więc, że chcesz "poprawić" to zachowanie? W takim razie myślę, że T-Regex nie powinien tego robić, tylko oddzielna biblioteka (czy tam co jest w PHP mniejszego od biblioteki).


edytowany 1x, ostatnio: Silv, 2019-09-03 17:34

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0