Estoy tratando de convertir un fragmento de código PHP a dart y me encontré con algunas cosas que simplemente nunca había usado antes, una de las cuales es una sola tubería | . No estoy seguro de cuál es el equivalente exacto del dardo, si es que hay uno.
El fragmento de código en PHP que estoy intentando convertir es:
$cc1 = (chr(ord($c1) / 64) | "\xc0");Lo que tengo hasta ahora convertido en dardo es:
var cc1 = (String.fromCharCode(c1.codeUnitAt(0) / 64) | "\xc0"); Sin embargo, la tubería única | me está dando un error de dardo The operator '|' isn't defined for the type 'String'. , pero por lo que puedo decir, php chr debería dar una cadena como salida, por lo que surge la pregunta de si la tubería única realmente está haciendo lo mismo en Dart que en PHP.
La operación es bit a bit-OR, y el operador equivalente es | . Sin embargo, PHP es indulgente con los tipos y Dart es seguro para tipos. No convertirá cadenas en enteros por usted. Tu puedes hacer:
var cc1 = c1.codeUnitAt(0) | 0xc0; cc1 será un int . Si, por ejemplo, desea que sea una String con la representación hexadecimal, puede hacerlo:
var cc1 = (c1.codeUnitAt(0) | 0xc0).toRadixString(16);