greptilian logo

IRC log for #friendlyjava, 2020-01-27

##friendlyjava on freenode

| Channels | #friendlyjava index | Today | | Search | Google Search | Plain-Text | plain, newest first | summary

All times shown according to UTC.

Time S Nick Message
01:27 Jantz joined ##friendlyjava
03:09 aditsu joined ##friendlyjava
05:18 mr_lou joined ##friendlyjava
05:41 Jantz joined ##friendlyjava
06:38 Jantz joined ##friendlyjava
06:41 Jantz joined ##friendlyjava
06:44 Jantz joined ##friendlyjava
06:46 Jantz joined ##friendlyjava
14:35 mr_lou joined ##friendlyjava
17:32 mr_lou Ohoy
17:33 mr_lou Reading from a text file, we do: thisLine = br.readLine();
17:33 mr_lou But we can also do: while ((thisLine = br.readLine()) != null) { // do stuff }
17:34 mr_lou Where can I read about that? I mean, the fact that putting an if statement in a paranthese in order to check if it worked?
17:34 mr_lou Or whatever to call it. What's it called?
17:40 aditsu that's a while statement
18:07 aditsu mr_lou: the only "special" thing in there is using an assignment as an expression
18:08 mr_lou I mean......  what's it called when you put a condition in paranthese, and can get out true or false or null?
18:08 mr_lou if (value = read()) { Yes, a value was read}
18:08 mr_lou instead of
18:09 mr_lou value = read();
18:09 mr_lou if (value) { Yes, a value was read}
18:09 aditsu well, what I said, using an assignment as an expression (more specifically, using the result of an assignment)
18:10 aditsu and if (value = read()) is only in parentheses because "if" requires parentheses
18:11 aditsu also, you "can get out true or false or null" only from an expression of type Boolean
18:13 aditsu and you can do this kind of thing without any condition or if or while statement
18:14 aditsu e.g. a = (b = 3) + 2;
18:16 aditsu ah, it can be called an "assignment expression"
20:06 mr_lou Let's take BufferedReader.
20:06 mr_lou It has readline()
20:07 mr_lou readline() reads a line of text. But returns null if it's the end of stream.
20:07 mr_lou So you do
20:07 mr_lou String line = "";
20:07 mr_lou while (line!=null) line = readline();
20:08 mr_lou And this is where you instead can do
20:08 mr_lou while ((line = readline())!=null)
20:08 mr_lou Where does null come from here? Is it because readline() returns null, or is it because the expression returns null?
20:12 aditsu both
20:12 aditsu the expression can return null because it returns the result of readline()
20:17 mr_lou Hm
20:17 mr_lou int a = 4; System.out.println(a=7);
20:17 mr_lou I thought something like that would maybe output "true" because it was succesful, or something.
20:17 mr_lou But it outputs 7
20:18 mr_lou Anyway.... break time.
20:18 aditsu well, how can the statement "a=7" be considered successful?
20:19 aditsu or not successful?
20:19 aditsu you're just assigning the value 7
20:19 mr_lou More of a generalization. If statements in a paranthese would return true or false depending on success or not, it would also apply to such simple things.
20:20 mr_lou I think PHP returns true/false
20:20 aditsu they would only return true or false if the result is a boolean
20:20 aditsu 7 is not boolean
20:20 mr_lou I think PHP don't care.
20:20 mr_lou Thought it might be the same with Java
20:20 aditsu php probably casts non-zero to true and zero to false
20:21 aditsu maybe non-null and null in a similar way
20:22 aditsu but why are we talking about php?
20:22 mr_lou Because Java returning null confused me because PHP returns false
20:25 aditsu java can return null, false, 5, "foobar" or any possible value in the world, depending on what expression you are using
20:26 aditsu and I bet the same is true for php
20:29 mr_lou So it's just the return value. It's not the expression.
20:29 mr_lou https://www.php.net/manual/en/function.fgets.php
20:29 mr_lou PHP returns false, because fgets() returns false.
20:29 mr_lou And Java returns null because readline() returns null.
20:30 mr_lou Ok, bedtime.
20:30 mr_lou G'nite.
20:30 aditsu well, if you call readline() then it returns whatever readline() returns
20:30 aditsu g'night

| Channels | #friendlyjava index | Today | | Search | Google Search | Plain-Text | plain, newest first | summary

##friendlyjava on freenode