1001 * INIT *
class MyHomePage extends StatefulWidget{
@override
_MyHomePageState createState() => _MyHomePageState();
}
государственный класс:
class _MyHomePageState extends State<MyHomePage> {
int prime;
bool isPrime(int n) {
int count = 0;
for(int i = 1 ; i <= n; ++i) {
if (n % i == 0) {
++count;
}
}
return count == 2;
}
здесь писатель использовал ++ i вместо i ++
/// Returns the nth prime number.
int getnthPrime(int n) {
int currentPrimeCount = 0;
int candidate = 1;
while(currentPrimeCount < n) {
++candidate;
if (isPrime(candidate)) {
++currentPrimeCount;
} }
return candidate;
}
void _getPrime() async {
int ans = await compute(getnthPrime,10);
setState((){
prime=ans;
});
}
@override
Widget build(BuildContext context) {
return MaterialApp(
home: Scaffold(
appBar: AppBar(
title: const Text('Basic AppBar'),
),
body: Column(
children: <Widget> [
Padding(
padding: const EdgeInsets.all(16.0),
child: RaisedButton(child:Text('GEN'), onPressed: _getPrime,)
),
Text('result : $prime'),
]),
),
);
}
}
У меня есть этот код, найденный в сети, для учебника, использующего асинхронные вычисления, чтобы облегчить работу флаттера, но код зависает, когда я нажимаю кнопку .. почему?
писатель добавляет static int в функцию getinth, но это приводит к ошибке компиляции. поэтому я удаляю статические ключевые слова
isPrime, как следует из названия, должен проверять, является ли число PrimeNumbers.
Это как-то связано с моделями телефонов или версиями для Android? Я установил выпущенное приложение в телефон 3 ГБ