Откуда ошибка?

всем снова привет.
пишу простой скетч, вроде все верно(хотя может уже я что то путаю, тк не силен в с++ да и не люблю его)
кусок кода:

 String stri="FFFFFFF";
 
String str=  stri.toLowerCase();

при компиляции лезет ошибка непонятная!

 error: conversion from 'void' to non-scalar type 'String' requested
exit status 1
conversion from 'void' to non-scalar type 'String' requested

в чем причина,как исправить?

метод toLowerCase() не производит новой строки, он только переводит свою строку в нижний регистр.
Поэтому присваивать его новой строке нельзя.

Если ты хочешь, чтобы в строке str была копия первой строки в нижнем регистре - надо сначала скопировать первую строку во вторую, а потом уже перевести ее в нижний регистр:

String stri="FFFFFFF";
String str=  stri;
str.toLowerCase();

спасибо.
непонятно для чего так сделали, наверно хотели сделать проще, а получилась путаница, в нормальных (для меня) языках это бы так не работало.

Вообще-то:

  1. Работает наиболее логичным образом.
  2. От языка это, строго говоря, не зависит.
1 лайк

В том и беда. Это всегда эхом возвращается :frowning:

1 лайк

Откуда путаница? Бывают методы, которые возвращают какое-то значение, а есть которые нет. Просто надо читать документацию, в ней все четко описано: