Используйте функцию callback()
внутри успеха foo()
. Попробуйте таким образом. Это просто и легко понять. & nbsp;
var lat = "";
var lon = "";
function callback(data) {
lat = data.lat;
lon = data.lon;
}
function getLoc() {
var url = "http://ip-api.com/json"
$.getJSON(url, function(data) {
callback(data);
});
}
getLoc();
Запишите его так:
s.length() == 0 // it's a method, not an attribute
Некоторые общие предложения «хорошего кодирования»:
Я применил эти предложения к вашему готовому коду, см. Ниже:
public class StringTool {
public static String reverse(String source) {
// stop condition of the recursion
if (source.isEmpty()) {
return "";
}
int lastPosition = source.length() - 1;
String lastCharacter = source.charAt(lastPosition);
String restOfSource = source.substring(0, lastPosition);
// place the last character at the beginning and reverse the rest
// of the source recursively
return lastCharacter + reverse(restOfSource);
}
// test method
public static void main(String args[]) {
System.out.println(reverse("A STRING"));
}
}
length
является методом , а не атрибутом. Вам придется использовать его таким образом:
s.length(); // note the use of parens
Кроме того, после исправления вы получите ошибку компиляции из-за следующего условия:
if (s.length = 0) {
Это должно быть
if (s.length == 0) {
И, наконец, в вашем методе main
переменная b
должна быть создана, используя
Back b = new Back();
Это лучше отражать то, что вы пытаетесь выполнить:
class Back {
void Backwards(String s) {
if (s.length() == 0) {
System.out.println();
return;
}
System.out.print(s.charAt(s.length()));
s = s.substring(0, s.length()-1);
Backwards(s);
}
}
public class RTest {
public static void main(String args[]) {
Back b = new Back();
b.Backwards("RAPE APE");
}
}
==
- с String
нам предоставляется функция с именем length()
, а не поле length
.
- Если вы использовали Array
, это было бы length
как Массив имеет одну и только одну переменную Instance с именем length
.
Например:
s.length() == 0;
В вашей инструкции if вы назначаете 0 в s.length, а не проверяете. сделайте это следующим образом:
if(s.length()==0)
//rest of your code
еще одна ошибка - s.charAt(s.length())
. Индекс i-го символа в строке равен (i-1), аналогично индексам массива. Таким образом, последний символ строки имеет индекс (s.length()-1)
. Поэтому замените эту строку кода на s.charAt(s.length()-1)
.