Re:Why does `True == False is False` evaluate to False in Py...
by angus_gh on Saturday May 02, 2020 @10:56AM
(#23052120)
In some ways yes, Java is not so strongly typed; a statically-typed language can be weakly typed.
See C where ints, pointers, floats, and bools can almost all coerce into each other, such that the compiler will allow you to use arithmetic/logic operators with most different types, whether you meant to or not.
Re:Why does `True == False is False` evaluate to False in Py...
by sah2ed on Saturday May 02, 2020 @10:49AM
(#23052086)
That’s because the language designers overloaded the arithmetic operator (+) to perform string concatenation when the operands can be cast as Strings.
Without overloading the + operator, string concatenation which is a common operation, would have been unnecessarily verbose. Your example without the + operator would look like below:
String a = new String(“a”).concat(1); // String object concat
String a = “a”.concat(1); // String literal concat
Re:Why does `True == False is False` evaluate to False in Py...
by jakear on Saturday May 02, 2020 @11:44AM
(#23052378)
The same could be said of JS but for some reason it gets shit but Java gets off Scott-free.
Re:Why does `True == False is False` evaluate to False in Py...
by zapzupnz on Thursday May 07, 2020 @01:52AM
(#23100095)
Java doesn't get off scot-free for anything; nobody likes it, they just use it because they must.
Java just happens to be less prominent in tech media right now since JS on the server is the new(-ish) hotness. There's still plenty of dislike for it, but really, all that needed saying about it happened long before now.
> a = "a" + 1
>fails.
String a = "a" + 1; works in Java. So Java is not strongly typed?