Зачем нужна точка?

VeD
Offline
Зарегистрирован: 21.02.2016
//если текущая строка - SMS-сообщение,
            //отреагируем на него соответствующим образом
            if (!currStr.compareTo("Green on")) {
                digitalWrite(greenPin, HIGH);
            } else if (!currStr.compareTo("Green off")) {
                digitalWrite(greenPin, LOW);
            } else if (!currStr.compareTo("Yellow on")) {
                digitalWrite(yellowPin, HIGH);
            } else if (!currStr.compareTo("Yellow off")) {
                digitalWrite(yellowPin, LOW);
            }
            isStringMessage = false;
        } else {
            if (currStr.startsWith("+CMT")) {
                //если текущая строка начинается с "+CMT",
                //то следующая строка является сообщением
                isStringMessage = true;
            }

 

Перед comporeTo точка. Нафига она тут?
VeD
Offline
Зарегистрирован: 21.02.2016

CompareTo

T.Rook
Offline
Зарегистрирован: 05.03.2016

Если Вы имеете в виду !currStr.compareTo("Green off") , то это метод класса String. В данном случае принадлежит объекту currStr . Читайте тут:  http://arduino.ru/Reference/StringCompareTo

VeD
Offline
Зарегистрирован: 21.02.2016

А точка то зачем? Что она дает? Если ее не поставить, что будет? 

trembo
trembo аватар
Offline
Зарегистрирован: 08.04.2011

VeD пишет:

 else if (!currStr.compareTo("Yellow on")) 
 
Перед comporeTo точка. Нафига она тут?

Она не перед compareTo, она после currStr

Клапауций 322
Offline
Зарегистрирован: 31.12.2015

VeD пишет:

А точка то зачем? Что она дает? Если ее не поставить, что будет? 

ты по ссылке http://arduino.ru/Reference/StringCompareTo читал?

Синтаксис

string.compareTo(string2)

что там делает точка, скобки? - синтаксис, блеать!

VeD
Offline
Зарегистрирован: 21.02.2016

А почему не сделать так 

if(!currstr=="yellow On")//если пришла смс с текстом yellow on

{

digitalWrite(yellowpin,HIGH);//включаем желтый диод

}

else (!currstr="yellow off")//если сообщение с текстом yellow off

{

digitalWrite(yellowpin, LOW);//выключаем его. 

}

Jeka_M
Jeka_M аватар
Offline
Зарегистрирован: 06.07.2014

Цитата:

Доступ к элементам структур и классов может осуществляться двумя операциями: операцией точки (.) или операцией стрелки (->). Если доступ осуществляется через объект, то используется операция точка.
Например, если объект с именем А имеет свойство Prop и метод F(), то доступ к ним дается выражениями:
А.Prop
A.F()
Если доступ осуществляется через указатель на объект, то используется операция стрелка. Например:
Label1->Caption;
Label1->Hide();
Правда, и в случае, если вы имеете указатель на объект, вы можете использовать операцию точка, но тогда вы сначала должны разыменовать указатель:
(*Label1).Caption
T.Rook
Offline
Зарегистрирован: 05.03.2016

VeD пишет:

А почему не сделать так 

if(!currstr=="yellow On")//если пришла смс с текстом yellow on

{

digitalWrite(yellowpin,HIGH);//включаем желтый диод

}

else (!currstr="yellow off")//если сообщение с текстом yellow off

{

digitalWrite(yellowpin, LOW);//выключаем его. 

}

Для простого сравнения и так можно. Отличие - результат только "равно/неравно". При использовании метода можно получить более расширенный результат.

wdrakula
wdrakula аватар
Offline
Зарегистрирован: 15.03.2016

В языке С строки простым == не сравниваются. Это не питон и не пхп. Либо метод, либо srtcmp().

axill
Offline
Зарегистрирован: 05.09.2011

wdrakula пишет:
В языке С строки простым == не сравниваются. Это не питон и не пхп. Либо метод, либо srtcmp().

да ладно) в Си нет, а в Си плюс плюс оператор сравнения оверлоадится и теоретически сравнивать можно хоть черта со ступой