bodhilogic
Problem with autoconversion to character
I am pulling data from a db table. A sample record looks like this: [{2019, 3, 1}, 12].
I am doing a [head|tail] on the record so that I can process it.
The head is fine - I can do what I need to do with it.
The problem is the tail (the 12).
It is being processed by the code as '\f' but my code needs a real number, not the character version of it.
?tail works great in iex and IO.inspect but it doesn’t work inside of code.
How can I get either, the number 12 or at worst, the string of the number "12"?
I could cheat and pull that field as a string, but I’d be missing a ‘teaching moment’ (and its a bit of a flaky work-around)
Thank you for any help you can provide!
Marked As Solved
sribe
You already do have the number 12, or a list with the single element of a number 12. You’re being confused by how it displays in the debugger.
That error indicates that you’re sending a list of a single integer to byte_size, which expects a binary.
But the beginning of you message indicates that you should have a number, not a list. So we need to see more of your code for context about what you’re actually trying to do with your data…
Also Liked
NobbZ
Just as a note a side, you can just do {year, month, day} = date, no need to convert the tuple to a list first. Pattern matching is not limited to lists.
sribe
ah, you’re being tripped by a subtlety of pattern matching on lists, remember that a linked list is a list of lists, so tail is always a list, possibly empty (well, except for the empty list which has no tail)–here, check out this:
iex(1)> [date|val] = [1,2]
[1, 2]
iex(2)> date
1
iex(3)> val
[2]
iex(4)> [date|[val]] = [1,2]
[1, 2]
iex(5)> date
1
iex(6)> val
2
# the way you really want to do it:
iex(7)> [date,val] = [1,2]
[1, 2]
iex(8)> date
1
iex(9)> val
2
Also
dat = Tuple.to_list(date)
[year, month, day] = dat
should just be {year, month, day} = date
and pretty sure you need Integer.to_string(val)
[EDIT] and I see you’re already calling Integer.to_string–it was just “below the fold” of your message when I was composing this ![]()
Popular in Questions
Other popular topics
Categories:
Sub Categories:
Forums
Popular Tags
- #ecto
- #liveview
- #troubleshooting
- #learning-elixir
- #deployment
- #library
- #erlang
- #testing
- #genserver
- #mix
- #absinthe
- #remote-other
- #otp
- #plug
- #how-to-question
- #macros
- #postgres
- #channels
- #elixirconf
- #exunit
- #discussion
- #javascript
- #code-sync
- #podcasts
- #onsite
- #dialyzer
- #docker
- #authentication
- #umbrella
- #full-time-contract
- #podcasts-by-brainlid
- #ecto-query
- #elixir-ls
- #phoenix_html
- #iex
- #blog-post
- #graphql
- #genstage
- #ai
- #websockets
- #supervisor
- #advent-of-code
- #elixirconf-us
- #distillery
- #processes
- #forms
- #api
- #metaprogramming
- #security
- #performance










